如何处理SD卡的Kitkat规则和限制?

时间:2014-09-06 11:56:09

标签: android file android-sdcard storage-access-framework

背景

自从Kitkat(API 19)以来,Google已经添加了一些限制和API来访问SD卡(或更确切地说,第二个外部存储)。

第三方应用不能再在自己的任何文件夹上写入SD卡,除非他们拥有root权限或者是系统应用。

谷歌已经添加了一个内置系统应用程序,可以管理SD卡上的文件,称为文件选择器",它有一些可以由用户完成的操作。

新API名为" 存储访问框架"。有关它的更多信息可以在here找到。

问题

关于如何处理以前总是可能的特定操作,没有太多信息。当然,它们被用于所有外部存储操作,但谷歌最近才处理这种类型的存储。

我也找不到足够的信息来了解可以在新文件选择器"上完成的事情,以及无法用它完成的事情。

该框架似乎支持对属于其他应用程序的文件的操作,但是某些文件是由用户复制的(例如,来自PC),因此我不确定如何处理这些文件。

问题

  1. 如何处理新API的下一步操作:在SD卡的任何位置创建,删除和修改任何文件?

  2. 是否打算打开新工具,向用户显示特定路径,他可以在哪里手动对文件进行操作?

  3. 我可以假设从Kitkat开始,该工具将始终存在吗?如果它没有,我该怎么办?还有其他选择吗?

  4. 对于有"固定"的用户这种写入SD卡的限制(例如,使用this tool)是否有任何官方方式来识别是否授予完全访问权限?除了尝试在某处创建随机文件并删除它之外,当然......

  5. 新API的可用意图是什么?我发现的所有意图都与处理其他应用程序的文件有关,如果它们支持它,但我找不到任何处理文件路径的文件。

2 个答案:

答案 0 :(得分:1)

CommonsWare有一系列博客文章(主要)解决了你问题的第1部分:

整篇博文系列涵盖:

似乎没有关于其余问题的任何文件(这并不奇怪,因为如果有的话,你不需要提出问题!)

答案 1 :(得分:1)

我认为有一个类似的问题和Google工程师提供的精彩答案,请在此处查看: How to use the new SD-Card access API presented for Lollipop?