标签: documents-provider

Android Documents Provider 如何使用以及我需要它吗?

我将创建一个用于从 Internet 访问文件的应用程序。我不想实现 UI,而是让它们从其他文件管理器中可见。因此,我选择实现一个文档提供程序。我做到了。在接下来的图片中,您可以看到我打开“文件”应用程序,找到“我的文档提供程序”并可以访问其文件。

在此输入图像描述 在此输入图像描述 在此输入图像描述

然而,它是一个模拟器。当我尝试在物理设备上使用该应用程序时,我发现我无法查看文档提供者。我使用小米红米 Note 5 Pro(android 9.0),没有“文件”应用程序。我测试了 Google Play 中排名前 20 的文件管理器,甚至 MIUI 内置的文件资源管理器,但它们都不能向我显示我的“我的文档提供程序”。

仅当尝试从 Gmail 应用程序附加文档时,我才设法看到我的文档提供程序。但这不是我需要的。

问题:

  1. 我认为 Documents Provider 不是我所需要的,对吗?
  2. 我对吗?这是与使用存储访问框架的其他客户端应用程序(如 Gmail、照片编辑器等)共享文件的一种额外方式,但并不是设计为用作访问文件的主要方法?
  3. 我是否必须使用 UI 和文件资源管理器的完整功能来实现自己的活动,作为用户访问其文件的主要方法,对吗?(就像 Google Drive 应用程序一样 - 它同时具有:自己的 UI,用于管理文件和可从系统选择器访问的文档提供程序)

更新

最后我找到了解决方案。据我了解,标准应用程序“文件”内置于任何设备中。然而,制造商可能“隐藏”这个应用程序并提供一些模拟。MIUI 上有一个“文件管理器”。在许多三星设备以及 Pixel 2 XL 上,它是“Google 文件”应用程序。他们都没有看到文档提供者。只有“文件”应用程序可以。

当您使用 SAF 时,“文件”应用程序仍然可以作为一个选项进行访问(例如使用 ACTION_OPEN_DOCUMENT 启动 Intent)。但您仍然无法独立启动该应用程序。不过,您可以从 Google Play 下载“文件快捷方式”。打开它时,您可以选择一个应将“文件快捷方式”作为快捷方式的应用程序。我选择“文件”应用程序,一切正常(直到我选中“记住我的选择”选项才起作用)。在 Pixel 2 和 Redmi Note 5 上,我都可以看到我的文档提供程序。这是一个好消息,因为我不必浪费时间来创建 UI!

PS 请注意,我上面描述的内容并非来自可靠来源。根据我的观察和理解,我使用了“隐藏应用程序”一词以及在任何设备上预安装“文件”的事实。

PPS 另外,我发现在 Pixel 2 上的“Google 文件”应用程序中还有一种打开“文件”的方法:浏览 -> 其他存储 -> 系统痕迹。由于某种原因,红米 Note 5 上没有“其他存储”按钮。

android storage-access-framework documents-provider

5
推荐指数
1
解决办法
1004
查看次数