Android N的Packs存储访问框架允许本地不可用的虚拟文件

2020-05-25 14:13:36
导读 N在最新的Android N Developer Preview 3中还具有一项隐藏功能。最新和最出色的Android N版本在更改日志上具有Sustained性能模式和48

N在最新的Android N Developer Preview 3中还具有一项隐藏功能。最新和最出色的Android N版本在更改日志上具有Sustained性能模式和48个其他功能。

除了它们之外,还有另一个功能,那就是存储访问框架。它允许Android N在文件不可用的情况下使文件几乎可用。SAF也较早可用,但当时缺少虚拟文件功能。

最近,Dropbox引用了他们在其云服务中附带的类似功能。

虚拟文件实际上是真实文件的占位符。这些文件所包含的内存不超过实际占位符大小。这些文件根据使用情况进行检索。在早期版本的Android中,您的应用程序可以使用Storage Access Framework来允许用户从其云存储帐户(例如Google云端硬盘)中选择文件。但是,没有办法表示没有直接字节码表示的文件。每个文件都需要提供输入流。

Android N 在存储访问框架中添加了虚拟文件的概念。虚拟文件功能使您DocumentsProvider可以返回可用于ACTION_VIEW意图的文档URI,即使它们没有直接的字节码表示形式。Android N还允许您为用户文件提供虚拟或其他格式的备用格式。

要在您的应用中获取虚拟文档的URI,请首先创建一个Intent来打开文件选择器UI。由于应用无法使用该openInputStream()方法直接打开虚拟文件,因此如果包含CATEGORY_OPENABLE类别,则您的应用不会收到任何虚拟文件。

用户做出选择后,系统将调用该onActivityResult()方法。您的应用可以检索虚拟文件的URI并获取输入流,如下面的代码片段所示。

免责声明:本文由用户上传,如有侵权请联系删除!

猜你喜欢

最新文章