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该配置已经不生效

你可能感兴趣的:(Android 10 open failed: EACCES (Permission denied) 文件存储适配,随时更新)