通过意图打开邮件应用程序不会打开选择器

Open mail app via intent doesn't open chooser

我正在尝试通过 intent 在 Android 上打开一个邮件应用程序。目的是在应用程序中有一个按钮可以打开您的 邮件收件箱 。但是当我使用:

val intent = Intent(Intent.ACTION_MAIN)
intent.addCategory(Intent.CATEGORY_APP_EMAIL)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
startActivity(Intent.createChooser(intent, "Email"))

它总是打开 gmail,而我也安装了 Outlook。我在邮件应用程序之间进行选择的唯一方法是使用 mailto。但我无意发送电子邮件,因此不希望使用该意图。

Outlook 不支持此 Intent 吗?

使用以下代码段直接从其他应用打开 outlook

context.startActivity(
            Intent().apply {
                action = Intent.ACTION_MAIN
                addCategory(Intent.CATEGORY_LAUNCHER)
                component = ComponentName(
                   outlookLaunchIntent?.component?.packageName, 
                   outlookLaunchIntent?.component?.className
                )
                setPackage(outlookLaunchIntent.package)
            }
        )

com.microsoft.office.outlook 是 outlook 的包名

要将其发送到所有电子邮件客户端,请使用这样的 uri

Intent intent = new Intent(Intent.ACTION_VIEW);
Uri data = Uri.parse("mailto:?subject=" + subject + "&body=" + body);
intent.setData(data);
startActivity(intent);

参考:How to open Email program via Intents (but only an Email program)