# 文件存储适配
# 参考资料
# 预备知识
# targetSdKVersion
# 目录分类
- 私有目录
- 内部存储私有目录
(/data/data/packageName)
,通过getFilesDir()获取 - 外部存储私有目录
(/sdcard/Android/data/packageName)
, 通过getExternalFilesDir获取目录
- 内部存储私有目录
- 共享目录
- 媒体文件[DCIM、Pictures、Music、Movies]
- 非媒体文件[PDF、]
# 访问不同分区的方式:
- 私有目录:和以前的版本一致,可通过
File()
API 访问,无需申请权限。 - 共享目录:需要通过
MediaStore
和Storage Access Framework
API 访问。
# 共享目录需要权限
对共享目录的权限进行了细分:
- 无需申请权限的操作:
通过
MediaStore API
对媒体集、文件集进行媒体/文件的添加、对 自身APP 创建的 媒体/文件 进行查询、修改、删除的操作。 - 需要申请
READ_EXTERNAL_STORAGE
权限: 通过MediaStore API
对所有的媒体集进行查询、修改、删除的操作。 - 调用
Storage Access Framework API
: 会启动系统的文件选择器向用户申请操作指定的文件