我创建了使用"mailto“通过电子邮件应用程序发送电子邮件的按钮,当我单击按钮时,它会显示2个选项(gmail,outlook)。有没有可能只显示outlook应用程序的方法?
发布于 2017-02-19 14:20:34
是的,有一种可能的方法。你需要先得到包管理器。并遍历通过queryIntentActivities()方法接收的可用匹配列表。并通过传递该outlook应用程序的包名来查找该应用程序。代码如下。
Intent outlookIntent = new Intent(Intent.ACTION_SEND);
outlookIntent.setType("text/html");
final PackageManager pm = getPackageManager();
final List<ResolveInfo> matches = pm.queryIntentActivities(outlookIntent, 0);
String outlookActivityClass = null;
for (final ResolveInfo info : matches) {
if (info.activityInfo.packageName.equals("com.microsoft.office.outlook")) {
outlookActivityClass = info.activityInfo.name;
if (outlookActivityClass != null && !outlookActivityClass.isEmpty()) {
break;
}
}
}
outlookIntent.setClassName("com.microsoft.office.outlook", outlookActivityClass);
outlookIntent.putExtra(Intent.EXTRA_EMAIL, new String[] { "yourmail@gmail.com" });
outlookIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
outlookIntent.putExtra(Intent.EXTRA_CC, "cc@gmail.com"); // if necessary
outlookIntent.putExtra(Intent.EXTRA_TEXT, "Email message");
outlookIntent.setData(Uri.parse("yourmail@gmail.com"));
startActivity(outlookIntent);
希望这能帮到你。
https://stackoverflow.com/questions/42327638
复制