感谢大佬,学了很多,先去看下Anemo。
以目前的 Android 文件权限政策,应该是只有 Android 自带的 ‘文件’ (
com.google.android.documentsui)应用能做到。
其实我可能没有表述清楚。这里说的支持沙盒化存储,是希望找到一个文件管理器/媒体播放器,把媒体文件存储在自己的data文件夹里(而不是存储在 /storage/emulated/0),这是程序存储私有数据的规范方法;您说的自带“文件”的功能更像是将文件自由转移到其他程序的data文件夹里。
- 图片可以用系统的图库打开,但好像无法翻页。
和前一条情况相似,如果A程序data文件夹里的文件共享给B程序打开,标准行为就是将文件单独传给B,这也是无法翻页的原因。如果A打开自己data文件夹里的数据则不会有这些限制。
root后的“存储空间隔离”可以实现上面的需求——它能重定向每个app的存储空间位置,使程序觉得自己在访问/storage/emulated/0,数据却实际存储于各自的data文件夹中,可惜root并不是容易达成的事情,以及被重定向并非app自身的预期行为,在文件分享、跳转第三方打开时有意外发生。
需求有一点像在线视频客户端的离线缓存功能
B站、腾讯视频等在线视频软件的实现方式便与上述的需求匹配——
- 视频缓存到本地后存储于自己的data文件夹,不影响其他应用的媒体选择界面,其他程序仍然干干净净
- 自己缓存的视频,自己可以播放
- 不支持外部打开及文件分享、文件移动、文件传输客户端,这是功能设计决定的
再次感谢大佬提供的方向!