0

我目前正在开发一个可以发送短信和电子邮件的应用程序。没什么大不了的,这很容易做到。这是我发送短信的方式:

private void sendSms() {
    Log.i("", "SEND SMS");
    Intent intent = new Intent(Intent.ACTION_VIEW, 
            Uri.parse("sms:123456789"));
    intent.putExtra("sms_body", "My message");
    startActivity( intent );
}

这是我发送电子邮件的代码:

private void sendEmail() {
    Log.i("", "SEND");
    Intent email = new Intent(Intent.ACTION_SEND);
    email.putExtra(Intent.EXTRA_EMAIL, "address@fuu.com");
    email.putExtra(Intent.EXTRA_SUBJECT, "Subject");
    email.putExtra(Intent.EXTRA_TEXT, "My body email");
    email.setType("message/rfc822");
    startActivity(Intent.createChooser(email, "Send an email:"));
}

独立地,那些工作很棒。

但是我想在我的 SMS 发送或取消后发送我的电子邮件。我找不到如何取回SMS intent/activity发送电子邮件的关闭事件。任何想法 ?

4

1 回答 1

2

您应该在开始此类活动时使用startActivityForResult 。

然后,您可以通过实现onActivityResult方法来获取启动活动的结果

流程将如下所示

1) startActivityForResult( SEND_SMS_INTENT, SEND_SMS_REQUEST_CODE ) 其中 SEND_SMS_REQUEST_CODE 是您定义的整数常量

2)发送短信活动完成(取消或完成它的工作)

3) onActivityResult 将通过 SEND_SMS_REQUEST_CODE 调用您的主机活动。

4) 然后你可以做 if( requestCode == SEND_SMS_REQUEST_CODE ) sendEmail();

您可以对发送电子邮件活动执行相同的操作。

如果您有兴趣了解子活动结果是什么(即:发送短信已取消或实际发送),您可以使用 onActivityResult resultCode 参数。

于 2012-11-16T15:17:43.893 回答