我找到了一些发送电子邮件的代码;它看起来是这样的:
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"));
并且未安装电子邮件客户端,则应用程序将显示错误消息“没有应用程序可以执行此操作”。