根据我的要求,点击按钮,我需要打开我的设备中可用的邮件客户端。一旦用户选择特定的邮件客户端,我需要显示他的收件箱,他可以选择特定的电子邮件,他可以发送该电子邮件。
要打开电子邮件客户端,我已使用此特定代码:
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, ""));
一旦邮件客户端打开,我需要选择任何特定的邮件客户端,它应该带我到特定的应用程序收件箱,我可以选择任何邮件,并需要发送。
任何人都可以帮我解决这个问题吗?
感谢。
答案 0 :(得分:0)
为什么不让android选择合适的应用程序。用户可能拥有一个他们保存为默认应用程序的应用程序来打开邮件。为什么每次都要让他们选择?
startActivity(intent);
答案 1 :(得分:0)
一旦用户选择特定的邮件客户端,我需要显示他的收件箱
没有用于显示电子邮件收件箱的标准Intent
结构。有很多很多适用于Android的电子邮件应用程序,每个应用程序都能按照自己的意愿执行此操作。
你可以做的最好的事情是:
使用ACTION_SENDTO
Intent
mailto:
Uri
将Intent
与PackageManager
和queryIntentActivities()
一起使用,查找支持此功能的所有活动,并希望它们实际来自电子邮件客户端
从ResolveInfo
queryIntentActivities()
中找出与这些活动相关的应用程序
在getLaunchIntentForPackage()
上使用PackageManager
为每个应用程序找到一些可能的“前门”活动
创建您自己的选择器样式对话框,以允许用户选择其中一个应用程序
在他们选择的startActivity()
Intent
然而:
这可能包含非电子邮件应用,因为我欢迎使用mailto:
ACTION_SENDTO
值的应用>
这些应用的“前门”活动不一定是收件箱
他可以选择特定的电子邮件,他可以发送该电子邮件
我不知道这意味着什么。
要打开电子邮件客户端,我已使用此特定代码
请注意,您的代码有两个缺陷:
您使用的是无效的MIME类型(纯文本为text/plain
,而非plain/text
)
您没有提供选择器的提示