android email 보내기

private void sendEmail() {

        Intent intent = new Intent(Intent.ACTION_SENDTO);
        intent.setData(Uri.parse("mailto:")); // only email apps should handle this
        String email = getEmail(getApplicationContext());
        if (WLog.DEBUG) WLog.d(TAG, " email=" + email);
        intent.putExtra(Intent.EXTRA_CC, (email != null)? email:"");
        intent.putExtra(Intent.EXTRA_EMAIL, new String[] {"xxx@gmail.com"});
        intent.putExtra(Intent.EXTRA_SUBJECT, "sugestion");

        if (intent.resolveActivity(getPackageManager()) != null) {
            startActivity(intent);
        }
    }

    private String getEmail(Context context) {
        AccountManager accountManager = AccountManager.get(context);
        Account account = getAccount(accountManager);

        if (account == null) {
            return null;
        } else {
            return account.name;
        }
    }

    private Account getAccount(AccountManager accountManager) {
        Account[] accounts = accountManager.getAccountsByType("com.google");
        Account account;
        if (accounts.length > 0) {
            account = accounts[0];
        } else {
            account = null;
        }
        return account;
    }

 

 

개발자에게 이메일 보내기.

 

직접 사용하는 유저 폰에서 유저 이메일 계정을 얻어오고

받는 사람에 개발자 이메일을 기록한다.

 

이 부분의 경우

        intent.setData(Uri.parse("mailto:"));

아래 방법을 쓰는 것 보다 사용자에게 좀 더 직관적으로 메일 앱에 타겟 해서 보여주는 것 같아서

위와 같이 썼다.

startActivity(Intent.createChooser(i, "Choose an Email client :"));

 

menifest.xml에 권한 추가는 기본.

<uses-permission android:name="android.permission.GET_ACCOUNTS" />

 

 

대충 정리.

알 수 없음의 아바타

글쓴이: woori

ENFJ

댓글 남기기

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.