本文从Sky233’s Blog复制过来
我最近在开发一个Android项目的时候,需要用到这个权限访问某个文件,但我在网络上没有找到一个很好且易懂的解决方法,因此写了这篇博文。
在Android上有一个叫做SAF(Storage Access Framework)的储存访问框架
而这个框架的访问权限较高,可以直接访问Android/data目录
因此可以通过这个方式来访问Android/data目录
仅需通过这个框架来获取Android/data目录的权限即可访问目录
如果手机安卓版本为Android10的时候,可以在AndroidManifest.xml中添加下列代码
以此禁用分区存储,但这在Android11及以上版本不起作用
所以需要使用SAF访问框架
REQUEST_CODE_FOR_DIR是一个int变量,为一个固定的数,用于回调
在onActivityResult回调方法中加入下列代码
并合适的地方调用下面的代码
这时会发现这样一个界面
当用户点击下方按钮时便会回调,并保存权限,以便下次使用
权限获取的部分到这里为止
Google官方提供了一个工具类库Documentfile
我们可以通过这个类来操作文件,例如查看文件是否存在,删除文件和浏览目录
下面是添加类的方法
要使用这个库,我们需要创建一个uri,我这里提供一个方法可以转换path为uri
通过这个方法,我们可以很快的转换为uri,我们这时可以操作文件了
例如删除文件:
但我们还是没有读写文件,因此我们需要另外一种方法,
例如我需要读取在Android/data目录下的某个txt文件
我只需要这样写:
在Android11以上访问Android/data目录还是很简单的
Documentfile的用法可以参考Google的官方文档
用法也是比较简单,因为我的项目用不到太多,所以我就只研究了这点
希望能对你有帮助(/ω\)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/62084.html