Android 文件管理系列 (02) – FileProvider

之前的文章有讲过,/data/data/<package-name>/<some-external-storage/Android/data/<package-name> 等应用私有目录无法被其他应用访问,如果需要在其他应用内打开私有内容,需要使用到 FileProvider.
FileProvider 是继承自 ContentProvider 的一个子类,用于安全地将一个应用相关的文件通过 content:// Uri 而不是 file:/// Uri 分享给其他用户。
Content Uri (schema 为 content://) 允许你临时赋予读写权限。当你发送一个包含 content Uri 的 Intent 给目标 app 时,使用 Intent.setFlags(), Intent.addFlags() 方法为其赋予权限。
继续阅读“Android 文件管理系列 (02) – FileProvider”

Android 文件管理系列 (00) – 存储系统概述

随着时间的演变,Android 支持了各种不同类型的存储设备和存储功能。所有的 Android 版本都支持 portable 和 emulated 存储。可移动存储通常由物理设备提供,比如 SD 卡或 USB 设备,主要用来进行临时的数据传输/文件存储。可移动存储的物理设备可能会在 Android 设备内长期连接,但是并不是与设备本身捆绑而是可以移除的。从 Android 1.0 起 SD 卡就可被当作可移动存储使用,到了 Android 6.0 又增加了对于 USB 的支持。从 Android 3.0 起支持 emulated 存储,通过模拟层将一部分内部存储 (Internal Storage) 暴露出来。
Android 6.0 开始,Android 开始支持 Adoptable Storage, 同样由像 SD 卡和 USB 等物理设备提供,可以加密并格式化后当作 Internal Storage 使用。
这里主要通过对系统分区的挂载、外部分区挂载、SD 卡的挂载进行分析。
继续阅读“Android 文件管理系列 (00) – 存储系统概述”