如何在android中打开电子邮件收件箱视图

时间:2013-07-02 21:07:00

标签: java android android-intent

根据我的要求,点击按钮,我需要打开我的设备中可用的邮件客户端。一旦用户选择特定的邮件客户端,我需要显示他的收件箱,他可以选择特定的电子邮件,他可以发送该电子邮件。

要打开电子邮件客户端,我已使用此特定代码:

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("plain/text");
intent.putExtra(Intent.EXTRA_EMAIL, new String[] { "abc@xyz.com" });
intent.putExtra(Intent.EXTRA_SUBJECT, "subject");
intent.putExtra(Intent.EXTRA_TEXT, "mail body");
startActivity(Intent.createChooser(intent, ""));

一旦邮件客户端打开,我需要选择任何特定的邮件客户端,它应该带我到特定的应用程序收件箱,我可以选择任何邮件,并需要发送。

任何人都可以帮我解决这个问题吗?

感谢。

2 个答案:

答案 0 :(得分:0)

为什么不让android选择合适的应用程序。用户可能拥有一个他们保存为默认应用程序的应用程序来打开邮件。为什么每次都要让他们选择?

startActivity(intent);

答案 1 :(得分:0)

  

一旦用户选择特定的邮件客户端,我需要显示他的收件箱

没有用于显示电子邮件收件箱的标准Intent结构。有很多很多适用于Android的电子邮件应用程序,每个应用程序都能按照自己的意愿执行此操作。

你可以做的最好的事情是:

  • 使用ACTION_SENDTO Intent

  • 创建mailto: Uri
  • IntentPackageManagerqueryIntentActivities()一起使用,查找支持此功能的所有活动,并希望它们实际来自电子邮件客户端

  • ResolveInfo

  • 返回的queryIntentActivities()中找出与这些活动相关的应用程序
  • getLaunchIntentForPackage()上使用PackageManager为每个应用程序找到一些可能的“前门”活动

  • 创建您自己的选择器样式对话框,以允许用户选择其中一个应用程序

  • 在他们选择的startActivity()

  • 上致电Intent

然而:

  • 这可能包含非电子邮件应用,因为我欢迎使用mailto:

    Uri ACTION_SENDTO值的应用>
  • 这些应用的“前门”活动不一定是收件箱

  

他可以选择特定的电子邮件,他可以发送该电子邮件

我不知道这意味着什么。

  

要打开电子邮件客户端,我已使用此特定代码

请注意,您的代码有两个缺陷:

  1. 您使用的是无效的MIME类型(纯文本为text/plain,而非plain/text

  2. 您没有提供选择器的提示