所以我想做这样的事情:
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/