android - ACTION_SEND 在同一个 Intent 中发送图像和文本

标签 android

所以我想做这样的事情:

Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_STREAM, Uri.parse(myMessageAsImage));
intent.putExtra(Intent.EXTRA_TEXT, "My Message");
intent.setType("text/plain"); // or intent.setType("image/<imageType>");

但是 ACTION_SEND 的文档似乎并没有使这看起来成为可能。是否有商定的方法来做到这一点?

最佳答案

我不知道你所说的“通用方式”是什么意思,但我认为你应该将类型设置为 intent.setType("image/*");

编辑:

您如何根据 Intent 发送数据取决于过滤您的特定操作的应用程序的可用性。处理 ACTION_SEND 的应用可能无法处理 ACTION_SEND_MULTIPLE。单击 HTC Gallery 上的共享会生成处理图像的应用程序列表,单个或多个。如果您选择邮件,那么您可以选择多张图片。但如果您选择 Facebook 或 Peep,那么您只能选择一张图片。如果您想执行与 HTC Gallery 相反的操作,这是我的简单解决方案,即:用户首先选择图像,然后根据他选择的数量向他展示所有兼容的应用程序。

// assuming uris is a list of Uri
Intent intent = null;
if (uris.size > 1){
intent = new Intent(Intent.ACTION_SEND_MULTIPLE);
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
} else if (uris.size() == 1) {
intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_STREAM, uris.get(0));}
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_TEXT, "Some message");
startActivity(Intent.createChooser(intent,"compatible apps:"));

关于android - ACTION_SEND 在同一个 Intent 中发送图像和文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6931611/

相关文章:

android - AlertDialog.Builder setItems 列表与另一个

android - 我如何处理 CircleCI 2.0 上的 Gradle 缓存?

java - 如何解决错误 : "Resource IDs cannot be used in switch statement in Android library modules"

java - 警告 : The option setting is experimental and unsupported

android - 如何以编程方式退出应用程序?

android - GoogleApiClient 未配置为使用此调用所需的 Fitness.API

java - 如何设计查询以在 Parse (Android) 中显示来自其他用户 I "follwow"的内容?

Android Studio 从文件中删除调试标签以包含在发布中

java - 在android中通过蓝牙发送文件时出错?

android - 更改 Gridview 项目可见性