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" />
대충 정리.