0

我有一个应用程序,它实现了自己的文件选择界面,这是应用程序正常工作的要求。

在 KitKat 中,(外部)SD 卡上的文件需要通过存储访问框架授予权限,然后才能修改。

由于这些受限制的文件仍然可以自由阅读,因此不会阻止我的应用程序显示它们。但是,一旦用户选择对这些文件之一执行操作,我可以使用存储访问框架向用户提示特定权限请求吗?

以下是文档中的示例。这将返回一组所有可能的图像。显然,如果我已经可以识别我请求许可的特定图像,我不想向用户显示所有图像。是否有任何其他过滤器可以缩小呈现给用户的范围?

(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/*");
4

2 回答 2

0

ACTION_OPEN_DOCUMENT可能你需要FLAG_GRANT_PERSISTABLE_URI_PERMISSION

检查文档:

https://developer.android.com/reference/android/content/Intent.html#ACTION_OPEN_DOCUMENT

于 2015-05-13T20:16:08.333 回答
0

不幸的是,KitKat 中的 SAF 没有这种高级功能。

根据您的需要,启动 API 24,您可以通过调用https://developer.android.com/reference/android/os/storage/StorageVolume.html#createAccessIntent(java .lang.String)

在 API 21 - 23 中,您可以通过调用https://developer.android.com/reference/android/content/Intent.html#ACTION_OPEN_DOCUMENT_TREE来指导用户授予您整个 SD 卡。

这将授予您通过 SAF 访问 SD 卡的权限,并且您可以利用 SAF 轻松显示/修改 SD 卡中的内容。

于 2017-04-10T03:28:28.517 回答