首页 > 解决方案 > SAF(存储访问框架)是否需要任何访问存储的权限?

问题描述

我试图了解使用(SAF)Storage Access Framework访问文件时所需的权限(在我的情况下,它是内部存储,文件不在外部 SD 卡上)。从文档中,我了解客户端是假设请求与文件交互的权限

在 SAF 中,提供者和客户端不直接交互。客户端请求与文件交互的权限(即读取、编辑、创建或删除文件)。

但是,我也一直在阅读一些文章(链接 1) (链接 2),其中提到如下:(用我自己的话说:在没有用户授予 READ/WRITE 权限的情况下访问存储)

就我而言:

当 ANDROID 上的应用程序拒绝存储权限时,我使用react-native-document-picker选择文件(操作不执行任何文件更改,仅读取)。我得到java.io.IOException: Permission denied

问题消失时(允许存储权限 && 画廊在应用程序中至少打开一次)。意思是,如果用户允许存储权限并继续打开文件。java.io.IOException: Permission denied除非两个条件都满足,否则我仍然会得到。

因此,如果(SAF)真的不需要读/写存储权限,我会感到困惑吗?

标签: androidreact-nativereact-native-androidstorage-access-framework

解决方案


不,你不需要任何许可。

如果您让用户使用 SAF 选择文件或目录,您将自动获得他们的读写权限。

除非您将它们永久化,否则这些权限不会持续很长时间,这可以通过一行代码来完成。


推荐阅读