是否可以使用ACTION_SENTO Intent发送给多个收件人?

时间:2011-03-24 13:45:24

标签: android android-intent

我希望我的应用与多人共享数据。理想情况下,我希望用户能够选择联系人组,并且它会启动与联系人组中的每个人共享该数据的意图,例如使用填充了该组用户电子邮件地址的地址字段打开Gmail。这是否可以使用ACTION_SENDTO意图?我甚至找不到如何使用它发送给一个人的例子,更不用说多个了。

3 个答案:

答案 0 :(得分:4)

使用ACTION_SENDIntent.EXTRA_EMAIL不会将应用选择器限制为仅限电子邮件应用。相反,请使用ACTION_SENDTO,如:

final Intent emailIntent = new Intent(android.content.Intent.ACTION_SENDTO);

emailIntent.setType("message/rfc822");
emailIntent.setData(Uri.parse("mailto:first.mail@gmail.com,second.mail@gmail.com"));

emailIntent.putExtra(Intent.EXTRA_SUBJECT, "your subject");
emailIntent.putExtra(Intent.EXTRA_TEXT, "email content");

startActivity(Intent.createChooser(emailIntent, "Send email..."));

如示例所示,您可以通过逗号分隔Uri向多个收件人发送电子邮件。无需从ActivityNotFoundException捕获startActivity(..),因为android框架将为您处理它,向用户显示适当的消息。

如果您想要格式化html中的电子邮件,您可以使用:

emailIntent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml("<i>my html-formatted text!</i>"));

答案 1 :(得分:0)

我希望你在代码中使用了以下语句

emailIntent .putExtra(android.content.Intent.EXTRA_EMAIL, new String[] {"user@example.com"});

它接受String数组,你可以在那里传递多个收件人名称

答案 2 :(得分:-2)

您可以使用Intent.ACTION_SEND_MULTIPLE作为电子邮件启动意图的操作,以便向多个收件人发送数据。
创建电子邮件ID列表并将其用于Intent.EXTRA_EMAIL密钥,因为这将包括发送电子邮件表单字段中电子邮件列表中的所有电子邮件。

这段代码怎么样:

final Intent emailLauncher = new Intent(Intent.ACTION_SEND_MULTIPLE);
emailLauncher.setType("message/rfc822");
emailLauncher.putExtra(Intent.EXTRA_EMAIL, emailList);
emailLauncher.putExtra(Intent.EXTRA_SUBJECT, "check this subject line");
emailLauncher.putExtra(Intent.EXTRA_TEXT, "hey check this message body!");
try{
       startActivity(emailLauncher);
}catch(ActivityNotFoundException e){

}
希望这对你有帮助。