我找到了一些发送电子邮件的代码;它看起来是这样的:

startActivity(Intent.createChooser(emailIntent, "Email"));

我改成了:
startActivity(emailIntent);

结果在我的设备上也是一样的。为什么使用Intent.createChooser()

最佳答案

在第二个语句中,您基本上要求系统查找能够响应意图“android.content.intent.action_send”的活动,并使用语句中设置的类型

emailIntent.setType("message/rfc822"); // or "text/plain"

但是在第一个语句中,您请求显示android应用程序选择器,不管是否有零个/一个/或多个活动来处理意图。
另外,如果你使用
startActivity(emailIntent);

并且没有电子邮件客户端响应您的意图(例如在模拟器中),则应用程序将抛出“activitynotfoundexception”,但如果您使用:
startActivity(Intent.createChooser(emailIntent, "Email"));

并且未安装电子邮件客户端,则应用程序将显示错误消息“没有应用程序可以执行此操作”。

10-08 18:06