あなたのアプローチはそれを行う正しい方法です。デバイスで動作するサンプル コードを次に示します。
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1234) {
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("message/rfc822");
sendIntent.putExtra(Intent.EXTRA_EMAIL, new String[] { "address2@example.com" });
// Setup message here
try {
getSupportActivity().startActivity(sendIntent);
} catch (final android.content.ActivityNotFoundException ex) {
// No email client found
}
}
}
public void sendEmail() {
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("message/rfc822");
sendIntent.putExtra(Intent.EXTRA_EMAIL, new String[] { "address@example.com" });
// Setup message here
try {
getSupportActivity().startActivityForResult(sendIntent, 1234);
} catch (final android.content.ActivityNotFoundException ex) {
// No email client found
}
}
フラグメントを使用している場合は、onActivityResult がアクティビティにあることを確認するか、onActivityResult をアクティビティからフラグメントにリダイレクトするようにしてください。