[英]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_EMAIL
或EXTRA_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.