Android ExternalStorage读写权限问题(Access to the path “/storage/emulated/0/...“ is denied)

现象:

从android10.0开始,不管manifest里是否添加读写权限,都不可以直接访问内部存储路径

为什么

1、因为很多App在安装以后,会在 /storage/emulated/0 下随意创建各种文件/文件夹,导致手机内部存储目录十分混乱,而且app卸载以后,这些文件不会被卸载掉,遗留垃圾文件,造成空间浪费。
2、可以修改其它App创建的文件,有数据安全问题

变更

面对上述一些列问题,Google在Android 10.0 引入了Scoped Storage。

1、App访问自身内部存储空间,这个与Android 10.0之前一致
2、外部存储空间,需要通过Uri访问(有兴趣的同学可以去查一查)

回到本文的主题

第一种方法:
就是设备不要升级到10.0及以上,这种方式不适合商业化,因为你无法决定用户的行为,除非你要放弃这部分用户。

第二种方法:
(1)除了再manifest里添加读写权限以外,还要添加权限

requestLegacyExternalStorage

在这里插入图片描述
(2)unity打包设置中修改WritePermission为External

猜你喜欢

转载自blog.csdn.net/weixin_38359813/article/details/129685369
今日推荐