我找到了一些发送电子邮件的代码;它看起来像这样:
startActivity(Intent.createChooser(emailIntent, "Email"));
我把它改成:
startActivity(emailIntent);
结果在我的设备上看起来是一样的。为什么要使用 Intent.createChooser()
?
最佳答案
你在第二条语句中基本上要求系统去找到可以响应 Intent "android.content.Intent.ACTION_SEND"并具有语句中设置的类型的 Activity
emailIntent.setType("message/rfc822"); // or "text/plain"
但在第一个语句中,无论是否有零个/一个/或多个 Activity 来处理 Intent,您都请求显示 Android 应用程序选择器。
另外,如果你使用语句
startActivity(emailIntent);
并且没有电子邮件客户端响应您的 Intent (例如在模拟器中)然后应用程序会抛出“ActivityNotFoundException”,但是如果您使用:
startActivity(Intent.createChooser(emailIntent, "Email"));
并且没有安装邮件客户端,则App会显示“No Application can perform this action”的错误信息。
关于android - 为什么要使用 Intent.createChooser()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9653725/