发送短信,然后发送电

时间:2012-11-16 15:06:46

标签: java android email sms

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

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 intent/activity的关闭事件。 有什么想法吗?

1 个答案:

答案 0 :(得分: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参数。