繁体   English   中英

Android-是否有一种万无一失的方式仅显示可能的EMAIL客户?

[英]Android - Is there a foolproof way to only show possible EMAIL clients?

在android中,您可以通过Intent.ACTION_SEND意向发送电子邮件,但这将显示消息传递和其他内容(即使您指定了文本/纯文本类型)。

如果您希望用户仅查看可能的EMAIL客户端,是否有一种万无一失,强大的方法来做到这一点?

使用ACTION_SENDTOmailto: 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.

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