Android OPEN_DOCUMENT_TREE意图根位置

ljm*_*gui 6 android-intent google-drive-api storage-access-framework android-5.0-lollipop

我正在使用Android 5.0(API级别21)中引入的目录选择 API,以便用户选择一个目录来保存文件.

要选择我构建的目录并发送ACTION_OPEN_DOCUMENT_TREE意图,如下面的代码所示:

Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
startActivityForResult(intent, REQUEST_CODE_OPEN_DIRECTORY);
Run Code Online (Sandbox Code Playgroud)

我得到以下弹出窗口:

在此输入图像描述

但是,如果我让用户使用ACTION_OPEN_DOCUMENT意图选择一个文件:

Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
startActivityForResult(intent, FILE_CHOOSER_ACTIVITY_REQUEST_CODE);
Run Code Online (Sandbox Code Playgroud)

然后,我得到以下弹出窗口:

在此输入图像描述

我在我的Android 5.0.1 Nexus Tab 10中测试它.为什么我使用ACTION_OPEN_DOCUMENT_TREE和ACTION_OPEN_DOCUMENT获得不同的根位置?也许只有内部存储文档提供程序实例支持子树选择?

我还希望允许用户使用ACTION_OPEN_DOCUMENT_TREE选择Google云端硬盘目录.

ACTION_OPEN_DOCUMENT_TREE和ACTION_OPEN_DOCUMENT引用都说:

调用时,系统将显示设备上安装的各种DocumentsProvider实例,让用户浏览它们.

非常感谢你提前

小智 5

我的结果与您的结果完全相同,即无法选择Google云端硬盘上的子树。

基于有关OPEN_DOCUMENT_TREE 的Android官方示例:系统显示所有支持子树选择的 DocumentsProvider 实例

因此,我认为原因是Google Drive DocumentsProvider实例尚不支持句柄OPEN_DOCUMENT_TREE。

  • 两年过去了,情况依旧…… (5认同)
  • 我认为我们有一个明显的例子,即 SAF 是一个巨大的垃圾箱火灾,即使谷歌在 5 年后也不支持它。丰富的 API 我的 ^&#@。 (4认同)
  • 五年过去了,情况仍然如此。 (2认同)