通过意图打开邮件应用程序不会打开选择器
Posted
技术标签:
【中文标题】通过意图打开邮件应用程序不会打开选择器【英文标题】: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 吗?
【问题讨论】:
【参考方案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 之间打开一个选择器。也许我的问题没有正确形成。你也有解决方案吗? 添加了参考以及最适合您的用例的答案以上是关于通过意图打开邮件应用程序不会打开选择器的主要内容,如果未能解决你的问题,请参考以下文章
Android 深层链接 - 不显示意图选择器弹出窗口,强制打开应用
如何在没有选择器意图的情况下直接打开 Google Play 商店应用程序 [重复]
Android:从存储访问框架获得的 URI 中使用意图选择器打开文件