SAF(存储访问框架)是否需要任何权限才能访问存储?



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

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

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

  • 摆脱安卓上的读/写权限
  • 在没有存储权限的情况下访问存储卷

就我而言:

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

问题消失的时间(允许存储权限&&图库在应用程序中至少打开过一次(。这意味着,如果用户允许存储权限并继续打开文件。我仍然会得到java.io.IOException: Permission denied,除非同时满足这两个条件。

因此,我很困惑(SAF(是否真的不需要读/写存储权限?

不,你不需要任何许可。

如果您允许用户使用 SAF 选择文件或目录,则会自动获得它们的读写权限。

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

最新更新