android - SAF(存储访问框架)是否需要任何访问存储的权限?
问题描述
我试图了解使用(SAF)Storage Access Framework
访问文件时所需的权限(在我的情况下,它是内部存储,文件不在外部 SD 卡上)。从文档中,我了解客户端是假设请求与文件交互的权限。
在 SAF 中,提供者和客户端不直接交互。客户端请求与文件交互的权限(即读取、编辑、创建或删除文件)。
但是,我也一直在阅读一些文章(链接 1) (链接 2),其中提到如下:(用我自己的话说:在没有用户授予 READ/WRITE 权限的情况下访问存储)
- 在 Android 上获得 READ/WRITE 权限
- 无存储权限访问存储卷
就我而言:
当 ANDROID 上的应用程序拒绝存储权限时,我使用react-native-document-picker选择文件(操作不执行任何文件更改,仅读取)。我得到java.io.IOException: Permission denied
。
问题消失时(允许存储权限 && 画廊在应用程序中至少打开一次)。意思是,如果用户允许存储权限并继续打开文件。java.io.IOException: Permission denied
除非两个条件都满足,否则我仍然会得到。
因此,如果(SAF)真的不需要读/写存储权限,我会感到困惑吗?
解决方案
不,你不需要任何许可。
如果您让用户使用 SAF 选择文件或目录,您将自动获得他们的读写权限。
除非您将它们永久化,否则这些权限不会持续很长时间,这可以通过一行代码来完成。
推荐阅读
- php - 如何在PHP中的现有数组中推送基于条件的值
- python - cron带来新数据时如何正确更新webapp
- ajax - Ajax 删除方法给出错误 - Fuseki 服务器
- java - 使用 JAVA SDK 恢复 Dropbox 中的数据
- reactjs - 如何在反应中获得底层dom节点
- mysql - 自动更新表名中的日期
- visual-studio-code - 如何在不选择的情况下复制整行?
- microsoft-edge - 尝试在 window.open 中打开 URL 时,请求在 Microsft Edge 浏览器中加载两次
- ssl - OpenSSL TLS/DTLS PSK
- c - 无法使用 XLoadFont 加载个人字体