Android Email Intent和StartActivityForResult - 按顺序发送两封电子邮件?

时间:2013-04-30 13:04:14

标签: android android-intent

我有一个我想要实施的简单例程,但我不确定我是否以正确的方式进行。我想使用emailintent发送第一封电子邮件,然后再调用另一封emailintent并发送第二封电子邮件(与第一封电子邮件不同)。本质上我想顺序发送两封电子邮件。

我尝试了第一封电子邮件的startActivityforResult,然后在该请求代码上调用了第二个emailintent,但这似乎不起作用(我知道如果我使用StartActivityforResult从外部发送电子邮件,Android将不会给我一个结果代码不关心我,因为无论第一个是否成功,都应该调用第二个emailintent。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您的方法是正确的方法。以下是一些适用于设备的示例代码。

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位于Activity中,或确保将onActivityResult从活动重定向到片段。

答案 1 :(得分:0)

您可以使用Javamail API发送两封不同的电子邮件。我想这可以用于javamail。 http://docs.oracle.com/cd/E18930_01/html/821-2418/beaow.html#scrolltoc

(不要忘记导入库并添加互联网权限)