如何限制android应用程序中的电子邮件意图?
我正在使用此代码从我的应用程序中使用电子邮件应用程序如何限制android应用程序中的电子邮件意图?,android,email,android-intent,Android,Email,Android Intent,我正在使用此代码从我的应用程序中使用电子邮件应用程序 String mailText = "Full Name:" + fname.getText().toString(); String subject = "Support"; Intent email = new Intent(Intent.ACTION_SEND); email.putExtra(Intent.EXTRA_EMAIL, new String[] { "support@roncocala.com" }); email.pu
String mailText = "Full Name:" + fname.getText().toString();
String subject = "Support";
Intent email = new Intent(Intent.ACTION_SEND);
email.putExtra(Intent.EXTRA_EMAIL, new String[] { "support@roncocala.com" });
email.putExtra(Intent.EXTRA_SUBJECT, subject);
email.setType("plain/text");
email.putExtra(Intent.EXTRA_TEXT, mailText);
startActivity(Intent.createChooser(email, "Choose an Email client :"));
但它显示了额外的应用程序,如SKype和ES文件局域网。有没有办法将这些应用程序限制为gmail、yahoo、hotmail等邮件应用程序。请提供帮助。谢谢。要仅获取电子邮件客户端,您需要使用android.content.Intent.ACTION\u SENDTO:
new Intent(Intent.ACTION_SENDTO); // return only the list of e-mail clients
您需要在这些电子邮件客户端应用程序上配置电子邮件帐户,否则会出现错误:“没有应用程序可以执行此操作”。操作\u SENDTO似乎只适用于较新的操作系统(至少API级别17+) 不幸的是,如果你想支持旧的Android操作系统,这是目前限制应用程序列表的“最佳”方式
emailIntent.setType(“message/rfc822”)代码>以上解决方案都不适合我。经过大量的搜索和测试,我终于找到了一个好的解决方案。感谢开源开发人员分享他/她的简洁简洁的解决方案
String mailto = "mailto:bob@example.org" +
"?cc=" + "alice@example.com" +
"&subject=" + Uri.encode(subject) +
"&body=" + Uri.encode(bodyText);
Intent emailIntent = new Intent(Intent.ACTION_SENDTO);
emailIntent.setData(Uri.parse(mailto));
try {
startActivity(emailIntent);
} catch (ActivityNotFoundException e) {
//TODO: Handle case where no email app is available
}
并且是指向他/她的要点的链接。可能重复的内容是“没有应用程序可以执行此操作”。尽管我有gmail和mail帐户。这些电子邮件应用程序上是否配置了任何帐户?