美文网首页Android热更知识点
Android 10/11 存储适配

Android 10/11 存储适配

作者: 全球顶尖伪极客 | 来源:发表于2021-03-02 17:56 被阅读0次

    参考文章:Android 存储基础
    Android 10、11 存储完全适配(上)
    Android 10、11 存储完全适配(下)

    小记:

    image.png

    适配核心

    分区存储是核心,App自身产生的文件应该存放在自己的目录下。这两个目录本App无需申请访问权限即可访问,其它App无法访问本App的目录。
    • /sdcard/Android/data/packagename/ App自身的自带外部存储-私有目录
    • /data/data/packagename/ App自身的内部存储
    适配共享存储

    共享存储空间里的文件需要通过Uri构造输入输出流访问。Uri获取方式有两种:MediaStoreSAF

    适配其它目录

    Android 11上需要申请访问所有文件的权限。

    具体做法

    第一步
    • AndroidManifest.xml里添加如下字段:权限声明:
       <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
       <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
    
    • <application/>标签下添加如下字段:
    android:requestLegacyExternalStorage="true"
    
    第二步

    如果需要访问共享存储空间,则判断运行设备版本是否大于等于 ·Android6.0·。

    • 若是则需要申请WRITE_EXTERNAL_STORAGE 权限。拿到权限后,通过Uri访问共享存储空间里的文件。
    • 如果需要访问其它目录,则通过SAF访问
    第三步

    如果想要做文件管理器、病毒扫描管理器等功能。则判断运行设备版本是否大于等于 Android 6.0,若是则需要先申请普通的动态存储权限。若运行设备版本为Android 10.0,则可以直接通过路径访问/sdcard/目录下文件(因为禁用了分区存储);若运行设备版本为Android 11.0,则需要申请MANAGE_EXTERNAL_STORAGE权限。

    相关文章

      网友评论

        本文标题:Android 10/11 存储适配

        本文链接:https://www.haomeiwen.com/subject/zzjxqltx.html