【问题标题】:ACTION_SEND sending both an Image and Text in the same IntentACTION_SEND 在同一 Intent 中发送图像和文本
【发布时间】:2011-10-30 15:43:30
【问题描述】:

所以我想做这样的事情:

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(你的活动/服务或安卓操作系统应该选择)
  • 这有关系吗?目前我正在考虑自己不处理这个意图
  • 是的...活动在同一个包中,您可以精确地指向该活动的类,并且您根本不必设置类型...但是如果您想发送这个意图来构建您拥有的诸如彩信或电子邮件应用之类的应用程序...我看到您已经找到解决方案的任何方式:)
  • 不,遗憾的是我以前的解决方案不正确(我删除了它)。 SEND_MULTIPLE 对于各种各样的应用程序似乎没有意义。此外,我的意思更重要的是,如果我要使用 ACTION_SEND 语义,那么什么是公认的侦听混合类型内容的方式(我知道我可以直接使用相同的包,但这有点违背了 ACTION_SEND 的公共意图侦听器的目的)。
  • android.git.kernel.org/?p=platform/packages/apps/… ... 查看方法 initFromIntent ... 或 android.git.kernel.org/?p=platform/packages/apps/… 中的 handleSendIntent 方法 .... 似乎可以只 setType 为流类型 别担心文本

标签: android


【解决方案1】:

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

编辑:

您如何根据意图发送数据取决于过滤您的特定操作的应用程序的可用性。处理 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:"));

【讨论】:

  • 是的,你可以,但我想做的是说多个图像和文本。就像您熟悉 HTC 图库应用程序一样。在某个时刻,您可以说“分享”。它允许 UI 为每个图像选择一堆图像和标题,并将它们作为一个巨大的传输发送。我想实现这一目标。喜欢打包大量的图片和文字要发送。我所说的共同点是大多数应用程序都支持的。因为所有意图都是一个协议。你可以随心所欲地记录它,但如果没有人关注它,它就没用了:) 我正在看着你,ACTION_SEND_MULTIPLE,当我这么说时
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多