android - 将多个文件传递给另一个应用程序

标签 android android-intent android-fileprovider

我正在创建一个文件选择器,并通过 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 上发表演讲。

enter image description here 上述演讲的幻灯片。

用法示例:

// 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/

相关文章:

Android 从另一个 Activity 更改 TextView

java - 尝试在 Xoom(Android 3.0)中从我的应用程序打开 Word 文档,但得到 "Unknown Source"

java - 无法使用 SAF 检索自定义额外内容

android - SlidingTabLayout 当前项集在首次加载 Activity 时未显示

android - 如何在 Android Oreo (8.1) 或更高版本中从 URI 获取文件路径

java - Android 照片分享与 FileProvider

java - 从 DialogFragment 调用 FileProvider 时出错 - 引用对象为空,

java - 如何沿路径将不规则形状切割成两部分?

android - 已 root 的 Galaxy S8 上的设备所有者

android - 如何将Android应用程序链接到服务器/计算机上的数据库?