Android在选择器中显示所有电子邮件应用程序,而无需撰写新电子邮件

时间:2016-05-16 14:10:38

标签: android

在我的应用程序中,我希望发送服务器端身份验证电子邮件。我想打开一个选择器,显示设备上可用的每个电子邮件应用程序。

我可以使用以下代码执行此操作:

 Intent emailIntent = new Intent(Intent.ACTION_SENDTO);
 emailIntent.setData(Uri.parse("mailto:"));

问题1:这将始终构成一条空消息,我想要做的就是显示每个电子邮件应用程序,以便将用户定向到所需的收件箱。

经过进一步研究,我发现我可以通过添加类别类型打开电子邮件应用程序(无需撰写新邮件):

Intent emailIntent = new Intent(Intent.ACTION_MAIN);
emailIntent.addCategory(Intent.CATEGORY_APP_EMAIL);

问题2:此解决方案仅显示默认电子邮件应用程序(在Samsung设备上进行测试意味着只显示“电子邮件”应用,而非第三方应用如Gmail,Outlook等)。这并不理想,因为我想让用户能够打开他们选择的电子邮件客户端。

大多数在线资源都显示了如何通过您自己的应用程序发送电子邮件,但我没有找到任何方式向用户显示每个电子邮件应用,但撰写新电子邮件。

非常感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:1)

您的CATEGORY_APP_EMAILdocumented to specifically be not used the way that you are using it。它是for makeMainSelectorActivity(),理论上应该给你你想要的东西。尝试:

Intent.makeMainSelectorActivity(Intent.ACTION_MAIN,
    Intent.CATEGORY_APP_EMAIL);

并查看是否能满足您的需求。

  

我想打开一个选择器,显示设备上可用的每个电子邮件应用程序。

请记住,用户可能没有使用这些。他们可能会在浏览器中使用Web邮件。他们可能无法在移动设备上访问电子邮件。他们可能不使用电子邮件。他们可能会认为电子邮件适合老年人。等等。