在Android中使用存储访问框架保存文件

我将文档访问框架与我的云存储访问应用程序集成在一起。 使用这个文档,我已经能够访问该文件并检索它(我只是使用Gmail应用程序的附加function来检查这个)。

我现在试图find如何使用相同的方法保存文件(直接通过应用程序保存文件到云存储),我做了以下更改:

对于getRoots调用,

row.add(Root.COLUMN_FLAGS, Root.FLAG_SUPPORTS_CREATE); 

我也重写了createDocument方法。

我没有看到很多关于如何做到这一点的示例代码或文档。 我也看到,像“照片”应用程序的一堆应用程序有“共享”button,使用不同的方法(日志显示miniShareActivity),我的应用程序不显示在那(它看起来像它使用不同的文件共享机制)

我正在寻找信息

  1. 如何使用SAF来存储文件(任何示例文件将是伟大的或指向文档)。 我假设它将允许用户使用select器界面导航到文件夹并存储文件。

  2. 如何让应用程序显示在应用程序的“Minishare活动”列表中,以将文件导入到应用程序中(看起来它不提供select器界面,但我仍然希望提供支持,以便将文件保存到一个默认的位置)

Solutions Collecting From Web of "在Android中使用存储访问框架保存文件"

您在其他应用中引用的“共享”button可能使用ACTION_SEND作为Intent操作,而不是使用Storage Access Framework引入的ACTION_CREATE_DOCUMENT 。

你可能想同时支持,因为ACTION_CREATE_DOCUMENT只在KitKat中引入,而旧的应用程序可能不知道它。 同样,您也可能需要支持Intent动作ACTION_GET_CONTENT,以便在预先KitKat设备上进行读取访问(ACTION_GET_CONTENT在KitKat +上运行时由SAF处理,但在预先KitKat设备上运行时仍需要处理)。 AndroidManifest中的<intent-filter>是否设置为匹配所有这些Intenttypes?