android - 用于查看收到的电子邮件消息/打开电子邮件应用程序的 Intent

标签 android android-intent

我正在编写一个 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/

相关文章:

AndroidRuntime : java. lang.UnsatisfiedLinkError: dlopen failed: library "libandroidicu.so"not found

Android:是否有来自 Intent.ACTION_TIME_CHANGED 的任何其他信息?

android - 我怎样才能像 Intent 一样将适配器传递给 fragment

java - 使用 Intents 传递铃声数据

android - 从 Chrome 网页调用 Android Intent.ACTION_INSERT

android - Kotlin Android 启动新 Activity

java - Intent 调用期间充气机错误

Android Canvas.drawText 不渲染

android - TeamViewer如何截屏并实现免root远程控制?

android - 默认描边并填充SVG