我试图理解在使用(SAF) Storage Access Framework访问文件时所需的权限(在我的例子中,它是内部存储,文件不在外部SD卡上)。从文档中,我了解到客户端应该请求与文件交互的权限。
在SAF中,提供者和客户不直接交互。客户端请求与文件交互的权限(即读取、编辑、创建或删除文件)。
然而,我也读了几篇(链接1) (链接2)的文章,其中提到如下:(用我自己的话说:访问存储而没有用户授予读/写权限)
在我的例子中,:
当ANDROID上的应用程序拒绝存储权限时,我使用反应-本机-文档选择器来选择文件(操作不执行任何文件更改,只执行读取)。我要去接java.io.IOException: Permission denied了。
当(允许存储权限&&图库在应用程序中至少打开一次)时,问题就消失了。意思是,如果用户允许存储权限并继续打开文件。我仍然会得到java.io.IOException: Permission denied,除非这两种条件都得到满足。
因此,我很困惑(SAF)是否真的不需要读/写存储权限?
发布于 2019-12-18 08:53:16
不不需要任何许可。
如果让用户使用SAF选择一个文件或目录,则会自动获得它们的读和写权限。
这些权限不会持续很长时间,除非您使其永久化,这可以用一行代码来完成。
https://stackoverflow.com/questions/59387284
复制相似问题