允许其他应用使用FileProvider编写一组文件

时间:2016-01-20 21:24:17

标签: android

我需要与appB共享appA内部存储的目录,以便appB可以为其编写一组文件。 appA的先验知道文件的数量和名称。

为此,我提出了这个策略:

  1. 在appA中设置FileProvider
  2. 在共享时,appA使用grantUriPermission和FLAG_GRANT_WRITE_URI_PERMISSION与appB共享目录,而不是文件。
  3. 然后appB向一个指向共享目录的Uri发起appB意图。
  4. appB接收意图,获取其中的uri并使用Uri.withAppendedPath为子文件生成URI。
  5. appB使用ContextResolves写入childUri
  6. appB为每个要写的文件重复#5和#6。
  7. 这不起作用,因为权限不会扩展到子uris。可以做些什么?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。如果你使用 FLAG_GRANT_WRITE_URI_PERMISSION | grantUriPermission中的FLAG_GRANT_PREFIX_URI_PERMISSION,该权限将适用于授权的任何子URL。