繁体   English   中英

Android 应用电子邮件收件人选项不起作用

[英]Android app email recipient option not functioning

我正在使用以下示例尝试向特定收件人发送电子邮件。

https://developer.android.com/guide/components/intents-common.html#Email

电子邮件客户端弹出但收件人:字段为空...有什么想法吗?

根据上述网页中的文档,我提到 EXTRA_EMAIL 填写收件人电子邮件地址

Intent.EXTRA_EMAIL 所有“收件人”电子邮件地址的字符串数组。

这是代码

 Intent intent = new Intent(Intent.ACTION_SENDTO);
                intent.setData(Uri.parse("mailto:")); // only email apps should handle this
                intent.putExtra(Intent.EXTRA_EMAIL, "testemail@gmail.com");
                intent.putExtra(Intent.EXTRA_SUBJECT, "Title of the email");
                if (intent.resolveActivity(getPackageManager()) != null) {
                    startActivity(intent);
                }

地址应该是一个字符串数组:

intent.putExtra(Intent.EXTRA_EMAIL, new String[] { "me@somewhere.com" });

请注意, ACTION_SENDTO本身并未记录为支持EXTRA_EMAILEXTRA_SUBJECT 恕我直言,更安全的方法是使用mailto:正确:

            Intent intent = new Intent(Intent.ACTION_SENDTO);
            intent.setData(Uri.parse("mailto:testemail@gmail.com"));

正如文档和其他答案中所述,地址应该是数组。 这是我用于撰写电子邮件的 Helper 类

public class EmailComposer {

    private Activity activity;
    private String subject;
    private String[] addresses;

    public EmailComposer(Activity activity, String subject, String[] addresses) {
        this.activity = activity;
        this.subject = subject;
        this.addresses = addresses;

    }

    public void composeEmail() {
        Intent intent = new Intent(Intent.ACTION_SENDTO);
        intent.setData(Uri.parse("mailto:")); // only email apps should handle this
        intent.putExtra(Intent.EXTRA_EMAIL, addresses);
        intent.putExtra(Intent.EXTRA_SUBJECT, subject);
        if(activity!=null) {
            if (intent.resolveActivity(activity.getPackageManager()) != null) {
                activity.startActivity(intent);
            }
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM