【Android】存储读取权限管理理解和api 调研报告

背景

工作和学习需要了解android 权限管理和 对应的api 调用逻辑。

学习

内部路径 不用权限

/data/data/应用包名

相关API Context 类

getCacheDir 缓存路径
getCodeCacheDir

示意路径

getFilesDir

内部文件 文件路径

fileList (files 下的所有文件名)

相关的openFileInputopenFileOutput就是直接在files文件夹读写某个文件:

getDataDir 不常用

外部存储

公共目录 Environment 类 - 需要权限

需要在manifest xml 配置和request Permission 哦~

getExternalStorageDirectory

注意这个不能保证该接口有效,得调用上述的state 看看状态。获取的路径就是如下:

getExternalStoragePublicDirectory

具体的对应文件夹

例如:

//输出:/storage/emulated/0/Music

java 复制代码
Log.d("DaMai",Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC).getPath();

私有目录 Context类 - 不需要权限

路径:私有目录地址:/storage/emulated/0/Android/data/应用包名

getExternalCacheDir
getExternalFilesDir
java 复制代码
        File file = context.getExternalFilesDir(Environment.DIRECTORY_PICTURES).getAbsoluteFile();

使用方式和内部存储的差不多,不过路径不一样罢了。

注意版本权限

·WRITE_EXTERNAL_STORAGE在android11 之后就不再支持了。。

高版本中使用存储权限可以 用如下的配置:

READ_MEDIA_AUDIO,

READ_MEDIA_IMAGES,

READ_MEDIA_VIDEO

文章参考

相关推荐
恋猫de小郭41 分钟前
腾讯 Kuikly 正式开源,了解一下这个基于 Kotlin 的全平台框架
android·前端·ios
贫道绝缘子1 小时前
【Android】四大组件之Activity
android
人生游戏牛马NPC1号2 小时前
学习Android(四)
android·kotlin
_祝你今天愉快2 小时前
安卓触摸事件分发机制分析
android
fyr897572 小时前
Ubuntu 下编译goldfish内核并使用模拟器运行
android·linux
心之所向,自强不息2 小时前
关于Android Studio的Gradle各项配置
android·ide·gradle·android studio
隐-梵2 小时前
Android studio学习之路(八)---Fragment碎片化页面的使用
android·学习·android studio
百锦再2 小时前
Kotlin学习基础知识大全(上)
android·xml·学习·微信·kotlin·studio·mobile
前期后期2 小时前
Android 智能家居开发:串口是什么,为什么android版本都比较低?粘包半包的原因以及处理思路,缓冲区处理,以及超时清空缓冲区....
android·智能家居
Wgllss2 小时前
按需下载!!全动态插件化框架WXDynamicPlugin解析怎么支持的
android·架构·android jetpack