【问题标题】:Is it possible to use an ACTION_SENTO Intent to send to multiple recipients?是否可以使用 ACTION_SENTO Intent 发送给多个收件人?
【发布时间】:2011-03-24 13:45:24
【问题描述】:

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

【问题讨论】:

    标签: android android-intent


    【解决方案1】:

    使用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 将电子邮件发送给多个收件人。无需从startActivity(..) 中捕获ActivityNotFoundException,因为android 框架会为您处理它并向用户显示适当的消息。

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

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

    【讨论】:

      【解决方案2】:

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

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

      它接受字符串数组,你可以在那里传递多个收件人姓名

      【讨论】:

        【解决方案3】:

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

        这段代码怎么样:

        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){
              
        }
        

        【讨论】:

        • ACTION_SEND_MULTIPLE 是将多个 DATA 传递给其他人。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-06
        • 2011-11-18
        • 2021-06-27
        • 2021-08-15
        相关资源
        最近更新 更多