Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/html");
intent.putExtra(Intent.EXTRA_EMAIL, "emailaddress@emailaddress.com");
intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
intent.putExtra(Intent.EXTRA_TEXT, "I'm email body.");
startActivity(Intent.createChooser(intent, "Send Email"));
上面的代码打开一个对话框,显示以下应用程序:蓝牙、Google Docs、Yahoo Mail、Gmail、Orkut、Skype 等。
实际上,我想过滤这些列表选项。我只想显示与电子邮件相关的应用程序,例如 Gmail 和 Yahoo Mail。怎么做?
我在“Android Market 应用程序”中看到过这样的示例。
- 打开 Android 电子市场应用
- 打开开发人员指定了他/她的电子邮件地址的任何应用程序。 (如果找不到这样的应用程序,只需打开我的应用程序:-market://details?id=com.becomputer06.vehicle.diary.free,或通过“车辆日记”搜索)
- 向下滚动到“开发者”
- 点击“发送电子邮件”
该对话框仅显示电子邮件应用程序,例如 Gmail、Yahoo Mail 等。它不显示蓝牙、Orkut 等。什么代码产生这样的对话框?
原文由 dira 发布,翻译遵循 CC BY-SA 4.0 许可协议
当您像下面一样更改您的 intent.setType 时,您将得到
使用
android.content.Intent.ACTION_SENDTO
仅获取电子邮件客户端列表,没有 facebook 或其他应用程序。只是电子邮件客户端。前任:我不建议您直接访问电子邮件应用程序。让用户选择他最喜欢的电子邮件应用程序。不要约束他。
如果您使用 ACTION_SENDTO,putExtra 无法向意图添加主题和文本。使用 Uri 添加主题和正文。
编辑: 我们可以使用
message/rfc822
而不是"text/plain"
作为 MIME 类型。然而,这并不表示“只提供电子邮件客户端”——它表示“提供任何支持消息/rfc822 数据的东西”。这可能很容易包括一些不是电子邮件客户端的应用程序。message/rfc822
支持MIME类型.mhtml, .mht, .mime