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

内部路径 不用权限

/data/data/应用包名
相关API Context 类
getCacheDir 缓存路径

getCodeCacheDir

示意路径

getFilesDir
内部文件 文件路径


fileList (files 下的所有文件名)

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

getDataDir 不常用

外部存储
公共目录 Environment 类 - 需要权限
需要在manifest xml 配置和request Permission 哦~
getExternalStorageDirectory

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

getExternalStoragePublicDirectory
具体的对应文件夹 
例如:
//输出:/storage/emulated/0/Music
Log.d("DaMai",Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC).getPath();
私有目录 Context类 - 不需要权限

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

getExternalCacheDir

getExternalFilesDir

File file = context.getExternalFilesDir(Environment.DIRECTORY_PICTURES).getAbsoluteFile();

使用方式和内部存储的差不多,不过路径不一样罢了。
注意版本权限
·WRITE_EXTERNAL_STORAGE在android11 之后就不再支持了。。

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

READ_MEDIA_AUDIO,
READ_MEDIA_IMAGES,
READ_MEDIA_VIDEO
文章参考




![基于博弈树的开源五子棋AI教程[4 静态棋盘评估]](https://img-blog.csdnimg.cn/direct/89a5a7c5e1af4310a1d23ac757f79e77.png)



![[node]Node.js 模块系统](https://img-blog.csdnimg.cn/43ded31ef31d403bbff4c46c4a0eec63.png)










