0

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

要打开电子邮件客户端,我使用了以下特定代码:

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, ""));

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

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

谢谢。

4

2 回答 2

0

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

startActivity(intent);
于 2013-07-02T21:24:31.083 回答
0

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

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

您希望做的最好的事情是:

  • 创建ACTION_SENDTO Intent一个mailto: Uri

  • 使用它Intent并找到所有支持它的活动,PackageManagerqueryIntentActivities()希望它们实际上来自电子邮件客户端

  • 找出与这些活动相关的应用程序,从ResolveInfo你回来queryIntentActivities()

  • 使用getLaunchIntentForPackage()onPackageManager为每个应用程序查找一些可能的“前门”活动

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

  • 打电话startActivity()Intent他们选择

然而:

  • 这可能包括非电子邮件应用程序,因为欢迎我编写一个提供支持mailto: Uri值的应用程序ACTION_SENDTO

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

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

我不知道这是什么意思。

要打开电子邮件客户端,我使用了这个特定的代码

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

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

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

于 2013-07-02T21:31:38.530 回答