Android 10 open failed: EACCES (Permission denied) 文件存储适配,随时更新

为何出现该兼容问题

为了使用户能够更好地控制自己的文件,并限制文件混乱,AndroidQ修改了外部存储权限。这种外部存储的新特性被称为分区存储(Scoped Storage)。官方翻译称为分区储存,也有称为沙盒模式。

参考url

https://blog.csdn.net/yehui928186846/article/details/101706238
https://juejin.im/post/6844903989549465608
https://blog.csdn.net/sinyu890807/article/details/105419420
https://zhuanlan.zhihu.com/p/128558892
https://www.hurryyu.com/2020/04/17/%E8%BD%BB%E6%9D%BE%E9%80%82%E9%85%8DAndroid%2010%20Scoped%20Storage%20%E5%88%86%E5%8C%BA%E5%AD%98%E5%82%A8%20-%20%E5%8D%9A%E5%AE%A2%E7%89%88/

Android Q(10)以后的文件规范

  • 类似getExternalFilesDir(Environment.DIRECTORY_PICTURES)的私有方式可以直接操作File,删除App后该文件夹所有文件都会删除
  • 在以后的公共分区存储只能以命令形式操作,具体在参考url可以看到很多Demo。
  • 不能操作除了自己文件夹、公共分区存储的文件

Demo

调用系统的拍照、相册,兼容到Android10
后续会添加一个操作各系列存储空间、升级app转移文件的Demo

临时紧急处理方法

在AndroidManifest.xml的application标签下新增android:requestLegacyExternalStorage="true"即可解决
但是Android11该配置已经不生效

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。