学习之鸿蒙&AndroidAndroid 进阶之旅

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

2021-06-22  本文已影响0人  Tsm_2020

关于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

上一篇下一篇

猜你喜欢

热点阅读