在android中,您可以通过Intent.ACTION_SEND意图发送电子邮件,但这会显示消息和其他内容(即使您指定了text / plain类型)。
如果您希望用户只看到可能的EMAIL客户端,是否有一种万无一失的强大方法可以做到这一点?
答案 0 :(得分:1)
使用ACTION_SENDTO
和mailto:
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);
}