[英]Android - Is there a foolproof way to only show possible EMAIL clients?
在android中,您可以通过Intent.ACTION_SEND意向发送电子邮件,但这将显示消息传递和其他内容(即使您指定了文本/纯文本类型)。
如果您希望用户仅查看可能的EMAIL客户端,是否有一种万无一失,强大的方法来做到这一点?
使用ACTION_SENDTO
和mailto:
Uri
指向所需的电子邮件地址。
如果您没有电子邮件地址,则您的应用不应尝试限制用户发送电子邮件。 请让用户分享用户想要的东西。
顺便说一句,MIME类型是text/plain
,而不是plain/text
。 有一个用于ACTION_SEND
的代码段,该代码段具有错误的MIME类型。
简短的答案是不,任何应用程序都可以列出自己。 系统会寻找与应用程序可以处理的内容匹配的意图过滤器。 通过实验,您可能能够减少表示可以处理该意图的应用程序的数量,或者尝试直接在GMail或EMail等处创建明确的Intent。
您是否尝试过将message/rfc822
作为MIME类型?
看到第一条评论: http : //mobile.tutsplus.com/tutorials/android/android-email-intent/
另请参阅: 在Android中发送电子邮件,仅选择电子邮件应用程序并指定附件mime类型
这将范围缩小到我手机中的Gmail和蓝牙。 message/partial
似乎也是如此。
我不知道这是否适用于所有手机,但似乎是一个可行的选择。
这是测试代码:
private void sendEmail()
{
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_EMAIL, "foo.bar@invalid.com");
intent.putExtra(Intent.EXTRA_SUBJECT, "From Test app");
intent.putExtra(Intent.EXTRA_TEXT, "Test test test");
intent.setType("message/rfc822");
startActivity(intent);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.