使用Android中的Storage Access Framework保存文件

时间:2015-04-21 16:28:19

标签: android android-fileprovider storage-access-framework

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

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

对于getRoots调用,

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

我也覆盖了createDocument方法。

我没有太多关于如何执行此操作的示例代码或文档。我也看到像“照片”应用程序这样的应用程序有“共享”按钮使用不同的方法(日志显示miniShareActivity),我的应用程序没有显示在那里(看起来它使用不同的文件共享机制)

我正在寻找有关

的信息
  1. 如何使用SAF存储文件(任何样本文件都很棒或指向文档)。我假设它允许用户使用选择器界面导航到文件夹并存储文件。

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

1 个答案:

答案 0 :(得分:0)

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

您可能希望同时支持两者,因为ACTION_CREATE_DOCUMENT仅在KitKat中引入,而较旧的应用程序可能不知道它。同样,您可能还希望在预KitKat设备上支持Intent操作ACTION_GET_CONTENT以进行读取访问(在KitKat +上运行时,SAF会处理ACTION_GET_CONTENT,但您的应用程序仍然需要在预KitKat设备上运行时处理它)。您的AndroidManifest中的<intent-filter>是否设置为匹配所有这些Intent类型?