我有一个有两个按钮的应用程序 - 一个用于电子邮件,另一个用于SMS.根据按下的按钮,我想通过电子邮件或短信发送特定文本.我已经编码了电子邮件按钮,它工作正常.问题是弹出的对话框提供了电子邮件或文本消息的选项.我想将这两者分开,以便当用户按下电子邮件时,只有电子邮件的选项存在,当用户按下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();
}
}
Run Code Online (Sandbox Code Playgroud)
基本上,电子邮件和消息传递似乎只有一个意图Intent.ACTION_SEND.
有什么办法把它们分开吗?
您可以使用预先填充的消息启动Messaging应用程序,如下所示:
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.putExtra("sms_body", "The SMS text");
sendIntent.setType("vnd.android-dir/mms-sms");
startActivity(sendIntent);
Run Code Online (Sandbox Code Playgroud)
或者做这样的事情,直接发送它,而不显示消息应用程序:
Uri uri = Uri.parse("smsto:0800000123");
Intent it = new Intent(Intent.ACTION_SENDTO, uri);
it.putExtra("sms_body", "The SMS text");
startActivity(it);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2998 次 |
| 最近记录: |