上周开发项目的时候,做了Android11存储方案升级适配,因为之前创建的文件是在外部公有目录下,为了延续老用户的使用习惯,项目组决定继续在外部公有目录下写入、读取文件的方案。为了拿到相应的访问权限,用到了下面这个标签。
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
官方文档上也有介绍,我这里截取了关键部分
做了相关编码后,本以为就万事大吉了,哪成想Google Play上不去。原因是因新冠疫情,对这个标签的适配延后到2021年初。所以现阶段带这个标签的APP上不了Google Play。(这是个人经历,不具有权威性)
现在开始采用第二种方案进行开发,主要有两点:
1.在Android11平台上在应用专属目录存储下进行文件的读、写;
2.将旧版公有目录下的数据迁移到新的专属目录中;
(一)
针对第一点,有两个可用区域:内部专属存储空间和外部专属存储空间
内部专属存储空间目录是这样的:/data/user/0/packagename/files。
您的应用不需要任何系统权限即可读取和写入这些目录中的文件。其他应用无法访问存储在内部存储空间中的文件。这使得内部存储空间非常适合存储其他应用不应访问的应用数据。但是,请注意,这些目录的空间通常比较小。在将应用专属文件写入内部存储空间之前,应用应查询设备上的可用空间。卸载应用后,系统会移除