【问题标题】:Open mail app via intent doesn't open chooser通过意图打开邮件应用程序不会打开选择器
【发布时间】:2021-07-31 14:48:56
【问题描述】:

我正在尝试通过 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 吗?

【问题讨论】:

    标签: android email android-intent


    【解决方案1】:

    使用以下 sn-p 直接从其他应用打开到 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)

    【讨论】:

    • 感谢您的快速反应,这确实可以打开 Outlook 应用程序,但是我想在 Gmail 和 Outlook 之间打开一个选择器。也许我的问题没有正确形成。你也有解决方案吗?
    • 添加了参考以及最适合您的用例的答案
    猜你喜欢
    • 2020-08-02
    • 2012-02-02
    • 2020-04-05
    • 2013-10-03
    • 1970-01-01
    • 1970-01-01
    • 2022-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多