如何使用为Android5.0(Lolliop)提供的新的SD卡访问API?背景在……上面Android 4.4(KitKat),谷歌对SD卡的访问受到了很大限制。从AndroidLolliop(5.0)开始,开发人员可以使用一个新的API,该API要求用户确认是否允许访问特定的文件夹,就像写在这个google组的帖子 .问题这篇文章引导你访问两个网站:https:/android.googlesource.com/Platform/Development/+/Android-5.0.0_R2/sample/Vault/src/com/examid/android/vave/VaultProvider.java#258这看起来像是一个内部示例(可能稍后会在API演示中显示),但是很难理解到底发生了什么。http:/developer.android.com/Reference/Android/Support/v4/Provider/DocumentFile.html这是新API的正式文档,但它没有提供关于如何使用它的足够详细信息。它告诉你的是:如果您确实需要完全访问整个文档子树,那么首先启动action_open_document_tree,让用户选择一个目录。然后将得到的getData()传递到From TreeURI(Context,URI),以开始处理用户选择的树。在浏览DocumentFile实例树时,始终可以使用getURI()获取表示该对象的基础文档的URI,以便与openInputStream(URI)一起使用等等。要简化运行KitKat或更早版本的设备上的代码,可以使用FROM File(File)来模拟DocumentsProvider的行为。问题关于新API,我有几个问题:你到底是怎么用的?根据这篇文章,操作系统将记住,该应用程序被授予访问文件/文件夹的权限。如何检查是否可以访问文件/文件夹?是否有一个函数返回我可以访问的文件/文件夹列表?你如何处理Kitkat上的这个问题?它是支持库的一部分吗?操作系统上是否有设置屏幕,显示哪些应用程序可以访问哪些文件/文件夹?如果在同一设备上为多个用户安装了应用程序,会发生什么情况?还有关于这个新API的其他文档/教程吗?权限可以被撤销吗?如果是的话,是否有将其发送到应用程序的意图?会在选定的文件夹上递归地请求权限工作吗?使用该权限是否也允许用户根据用户的选择进行多次选择?还是该应用程序需要具体说明允许哪些文件/文件夹?仿真器上有方法尝试新的API吗?我的意思是,它有SD卡分区,但是它作为主要的外部存储器工作,所以所有对它的访问都已经给出了(使用一个简单的权限)。当用户用另一张SD卡替换SD卡时会发生什么?
3 回答
- 3 回答
- 0 关注
- 656 浏览
添加回答
举报
0/150
提交
取消