美文网首页学习之鸿蒙&AndroidAndroid 进阶之旅
Android 进阶学习(二十六) Android读写权限的

Android 进阶学习(二十六) Android读写权限的

作者: Tsm_2020 | 来源:发表于2021-06-22 14:41 被阅读0次

    关于Android 的文件读写,在写这篇文章前,其实我了解的也并不多,以为所有的读写文件就必须要申请权限,以及在Android 6.0 以后就必须用户同意读写权限,其实不然,在Android 文件读写分为两种,一个是内存存储,另一种是外部存储,下面我们说一下他们有哪些不同

    1.内部存储

    内部存储在读写时只需要在ManiFests 中申请权限即可,不需要用户同意读写权限,由于存放在以包名为父目录的的文件夹下,所以在App卸载时会被同时删除,使用这类文件夹的有 SharePreferences DataBase Image加载等等...在申请了读写权限后,不需要用户同意,就可以进行操作,同时生命周期伴随着app的卸载而结束

    获取内部存储的方法
    //      /data/user/0/PackageName/files   
         getFilesDir().getAbsoluteFile();
    //      /data/user/0/PackageName/cache
          getCacheDir().getAbsoluteFile();
    //    /data/user/0/PackageName/name    权限自己设置  包括全局可读 全局可写 和私有  但是在试验过程中发现除了私有其他都不在支持 
          getDir("tsmTest",MODE_PRIVATE);
    

    2.外部存储

    获取外部存储的方法
    // /storage/emulated/0/Android/data/PackageName/files/  只需要在 Manifests 中生命权限即可
    getExternalFilesDir(null).getAbsoluteFile();
    
    // ANDROID_DATA/data/     即使在 Manifests 中生命了权限,如果用户没有给以权限,则无法操作读写
    Environment.getDataDirectory();
    

    外部存储的使用现阶段大家比较常用的就是使用系统的拍照功能,但是在使用过程中传递Uri 的过程中如果是Android7.0 以上则会报错,
    android.os.FileUriExposedException

    相关文章

      网友评论

        本文标题:Android 进阶学习(二十六) Android读写权限的

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