我正在创建一个文件选择器,并通过 Intent
传递一个文件,如下所示:
Uri uri = FileProvider.getUriForFile(activity, FILE_PROVIDER_ID, file);
Intent sIntent = new Intent("ACTION_RETURN_FILE").setData(uri);
activity.setResult(RESULT_OK, sIntent);
它有效。但现在我需要通过 Intent
传递几个文件。起初,我尝试调用 intent.setData
两次,但似乎不起作用,因为
This method automatically clears any type that was previously set.
有没有办法将一些文件传递到另一个应用程序?
最佳答案
这可以通过Intent#setClipData(ClipData)
来实现API。
您可以从Ian Lake查看示例用法的谈话"Forget the Storage Permission: Alternatives for sharing and collaborating"在 Big Android BBQ 上发表演讲。
用法示例:
// Adding into `Intent`
ClipData clipData = ClipData.newRawUri(null, contentUri);
clipData.addItem(new ClipData.Item(secondContentUri));
intent.setClipData(clipData);
// Retrieving from `Intent`
ClipData clipData = intent.getClipData();
for (int i = 0, count = clipData.getItemCount(); i < count; ++i) {
ClipData.Item item = clipData.getItemAt(i);
Uri uri = item.getUri();
}
关于android - 将多个文件传递给另一个应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44149756/