android - 为什么要使用 Intent.createChooser()?

标签 android email android-intent

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

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/

相关文章:

c - 使用C发送smtp电子邮件,不接受用户名和密码

Ruby Net::SMTP - 使用密件抄送发送电子邮件:收件人

java - 指向应用程序内部 Activity 的 anchor 标记超链接

android - 在应用程序中打开自定义文件类型 Gmail 附件

java - 将国际电话号码转换为本地电话号码

Android:如何合并两个形状的路径并去除重叠?

java - 从 fragment 设置 Activity 工具栏行为

python - 从 Protonmail 帐户、SMTP 库使用 Python 发送电子邮件

android - 是否可以使用 ACTION_SENTO Intent 发送给多个收件人?

android - 如何混合使用绝对大小和相对大小?