繁体   English   中英

一起使用Android Storage Access Framework和直接文件访问

[英]Using Android Storage Access Framework and direct file access together

我有一个可广泛使用文件系统(包括外部SD卡)的应用。

目前,它使用文件API创建/删除/列出文件,但我想使用新的Android存储访问框架。

问题是,几乎60%的安装基础仍在JB或更低版本上,我需要新的Intent.ACTION_OPEN_DOCUMENT_TREE 我不太确定如何实施它。

我以为我会写一个通用接口在我的应用程序中使用MyFile之类的东西,然后根据平台版本使用适当的API,但是除非已经有一个库可以使用,否则它将太多了。

其他人在做什么?您如何处理这种情况?

对您的操作进行一些抽象。

如果您在许多地方使用File ,请首先用一些抽象的接口类(例如FileSystem替换它,该类提供与File相同的功能,但隐藏实现细节。 必须删除所有与File一起使用的工作,并将其放置在TheFile接口的仅一种实现中,例如,名为NativeFileSystem 实现所有必需的功能,例如打开/删除/重命名/创建。

例如,使用工厂函数在Application类中创建FileSystem 在这里,您稍后可以决定为工作创建的实际类是什么。

当您测试隐藏实现的详细信息并且您的应用程序可以运行时,可以创建名为SAFFileSystem新实现,并实现所需的功能,但是使用Storage Access Framework允许的方式。

准备好一些可以在主线程上的File上运行的方法可能是异步的。 这是因为SAF可能会显示对话框并要求用户确认。 因此,您的应用程序中可能会有一些与方法调用有关的返工。

希望能有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM