1. 描述:

Storage Access Framework(SAF) 存储访问框架,Android 4.4+ 以后引入. 即安卓系统提供的一种文件访问规定,使用该框架访问安卓文件都得遵循大体规定

2. 说明:

2.1. SAF的组成

2.1.1. Document provider

DocumentsProvider 的子类 一个特殊的 ContentProvider,让一个存储服务(比如 Google Drive和one drive)可以对外展示自己所管理的文件 Android 系统内置了几个 Document provider,比如关于下载,图片以及视频的 Document provider Document provider

2.1.2. Client app

一个普通的客户端软件 触发 ACTION_OPEN_DOCUMENT 或 ACTION_CREATE_DOCUMENT 就可以接收到来自于 Document provider 返回的内容,比如选择一个图片,然后返回一个Uri

2.1.3. Picker

类似于文件管理器的界面,而且是系统级的界面,提供额访问客户端过滤条件的 Document provider 内容的通道 Picker Picker 是链接调用者和内容提供者的一个桥梁, 它提供并告诉调用者,可以选择哪些内容提供者

当客户端触发了 Intent,就会调用picker UI,然后根据需求得到对应Document provider。当然我们还可以在 Intent 中增加过滤条件,比如限制为图片

3. 简明易懂教程原帖

[Storage Access Framework(SAF|SAF) - Android 基础教程 - 简单教程,简单编程 (twle.cn) - Android 基础教程 - 简单教程,简单编程 (twle.cn)]]