我正在编写一个 Android 应用程序,它要求用户通过单击通过电子邮件收到的链接来确认他们的订阅。为此,我想创建一个快捷方式来打开首选的电子邮件应用程序。以下代码使我的 Gmail 应用程序崩溃:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setType("message/rfc822");
startActivity(intent);
是否有其他解决方案来解决这个问题?
最佳答案
更正您的代码: message/rfc822 作为 MIME 类型——它不表示——只显示电子邮件客户端——它表示——显示任何支持 message/rfc822 数据的东西。这可能包括一些不是电子邮件客户端的应用程序。
根据 Android documentation .如果您想确保您的 Intent 仅由电子邮件应用程序(而不是其他短信或社交应用程序)处理,请使用 ACTION_SENDTO 操作并包含“mailto:”数据方案。例如:
public void composeEmail(String[] addresses, String subject) {
Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setData(Uri.parse("mailto:"));
intent.putExtra(Intent.EXTRA_EMAIL, addresses);
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
}
}
关于android - 用于查看收到的电子邮件消息/打开电子邮件应用程序的 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43978753/