我正在创建文件选择器,并且我通过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
两次,但它似乎无法正常工作,因为
此方法会自动清除以前设置的任何类型。
有没有办法将一些文件传递到另一个应用程序?
答案 0 :(得分:2)
使用Intent#setClipData(ClipData)
API即可实现。
您可以在Big Android BBQ上查看Ian Lake的谈话"Forget the Storage Permission: Alternatives for sharing and collaborating"演讲中的示例用法。
示例用法:
// 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();
}