【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

文章参考

相关推荐
lxysbly37 分钟前
md模拟器安卓版带金手指2026
android
儿歌八万首1 小时前
硬核春节:用 Compose 打造“赛博鞭炮”
android·kotlin·compose·春节
消失的旧时光-19434 小时前
从 Kotlin 到 Dart:为什么 sealed 是处理「多种返回结果」的最佳方式?
android·开发语言·flutter·架构·kotlin·sealed
Jinkxs4 小时前
Gradle - 与Groovy/Kotlin DSL对比 构建脚本语言选择指南
android·开发语言·kotlin
&有梦想的咸鱼&4 小时前
Kotlin委托机制的底层实现深度解析(74)
android·开发语言·kotlin
LDORntKQH4 小时前
基于深度强化学习的混合动力汽车能量管理策略 1.利用DQN算法控制电池和发动机发电机组的功率分配 2
android
冬奇Lab4 小时前
Android 15 ServiceManager与Binder服务注册深度解析
android·源码·源码阅读
2501_916008896 小时前
深入解析iOS机审4.3原理与混淆实战方法
android·java·开发语言·ios·小程序·uni-app·iphone
独行soc7 小时前
2026年渗透测试面试题总结-20(题目+回答)
android·网络·安全·web安全·渗透测试·安全狮
常利兵8 小时前
2026年,Android开发已死?不,它正迎来黄金时代!
android