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

时间:2011-11-18 18:16:13

标签: android email android-intent

在android中,您可以通过Intent.ACTION_SEND意图发送电子邮件,但这会显示消息和其他内容(即使您指定了text / plain类型)。

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

3 个答案:

答案 0 :(得分:1)

使用ACTION_SENDTOmailto: Uri指向您想要的电子邮件地址。

如果您没有电子邮件地址,那么您的应用不应该尝试将用户限制为电子邮件。请告知用户share what the user wants用户想要的内容。

BTW,MIME类型为text/plain,而不是plain/text。有一个ACTION_SEND浮动的代码段,其中包含错误的MIME类型。

答案 1 :(得分:0)

简短的回答是否定的,任何应用程序都可以自行列出。系统会查找与应用程序可以处理的Intent过滤器相匹配的Intent过滤器。通过实验,您可以减少说它可以处理意图的应用程序的数量,或者您可以尝试制作明确的意图,直接指向GMail或EMail等。

答案 2 :(得分:0)

您是否尝试过将message/rfc822作为MIME类型? 请参阅第一条评论:http://mobile.tutsplus.com/tutorials/android/android-email-intent/
另见:Send an email in Android selecting only email apps AND specifying attachment mime type

缩小到手机中的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);
}