Android:电子邮件和电子邮件的单独意图短信

时间:2010-06-28 23:57:16

标签: android

我有一个有两个按钮的应用程序 - 一个用于电子邮件和一个用于短信。根据按下的按钮,我想通过电子邮件或短信发送特定文本。我已经编码了电子邮件按钮,它工作正常。问题是弹出的对话框提供了电子邮件或文本消息的选项。我想将这两者区分开来,这样当用户按下电子邮件时,只有电子邮件的选项,当用户按下SMS时,只有Messaging选项存在。

以下是我尝试过的代码。

private void sendEmail(){
    Intent i = new Intent(Intent.ACTION_SEND); 
    i.setType("text/plain"); 
    i.putExtra(Intent.EXTRA_EMAIL  , new String[]{"recipient@example.com"}); 
    i.putExtra(Intent.EXTRA_SUBJECT, "Subject of the message"); 
    i.putExtra(Intent.EXTRA_TEXT   , "Body of the message"); 
    try { 
        startActivity(Intent.createChooser(i, "Send mail...")); 
    } catch (android.content.ActivityNotFoundException ex) { 
        Toast.makeText(this, "There are no email clients installed.", Toast.LENGTH_SHORT).show(); 
    } 
}

对于这两封电子邮件而言,基本上似乎只有一个意图Intent.ACTION_SEND。消息。

任何方法将它们分开?

2 个答案:

答案 0 :(得分:5)

您可以使用预先填充的消息启动Messaging应用程序,如下所示:

Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.putExtra("sms_body", "The SMS text"); 
sendIntent.setType("vnd.android-dir/mms-sms");
startActivity(sendIntent);   

或做这样的事情直接发送它,而不显示消息应用程序:

Uri uri = Uri.parse("smsto:0800000123");   
Intent it = new Intent(Intent.ACTION_SENDTO, uri);   
it.putExtra("sms_body", "The SMS text");   
startActivity(it);  

答案 1 :(得分:-3)

仅用于发送电子邮件的字符串是:

email.setType("message/rfc822");