意图查看传入的电子邮件/打开电子邮件应用程序

时间:2017-05-15 11:49:48

标签: android android-intent

我正在编写一个Android应用程序,要求用户通过单击电子邮件收到的链接来确认他们的订阅。为此,我想创建一个快捷方式来打开首选的电子邮件应用程序。以下代码崩溃了我的Gmail应用:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setType("message/rfc822");
startActivity(intent);

是否有另一种解决方案可以解决这个问题?

2 个答案:

答案 0 :(得分:1)

更正您的代码: message / rfc822作为MIME类型 - 它没有指示 - 仅显示电子邮件客户端 - 它表示 - 显示支持消息/ rfc822数据的任何内容。这可能包括一些不是电子邮件客户端的应用程序。

根据Android documentation。如果您想确保仅通过电子邮件应用程序(而不是其他文本消息或社交应用程序)处理您的意图,请使用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);
    }
}

答案 1 :(得分:0)

使用此结构为可以执行电子邮件发送的应用创建选择器。

        Intent mIntent = new Intent(Intent.ACTION_SEND);
        mIntent.setType("text/html");
        mIntent.putExtra(...); // if you need extra just add it here
        mIntent = Intent.createChooser(mIntent, "Select Email Application...");
        startActivity(mIntent);