通过意图打开邮件应用程序不会打开选择器
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)
我正在尝试通过 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)