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

背景

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

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

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

新API称为“存储访问框架”.有关它的更多信息可以在here找到.

问题

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

我也没有找到关于可以在新的“文件选择器”上完成的可用事项的足够信息,以及无法用它做什么.

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

这个问题

>我如何处理新API的下一步操作:在SD卡的任何位置创建,删除和修改任何文件?
>是否打算打开新工具,向用户显示特定路径,他可以在哪里手动对文件执行操作?
>我可以假设从Kitkat开始,该工具将始终存在吗?如果没有,我该怎么办?还有其他选择吗?
>对于已经“修复”写入SD卡的限制的用户(例如,使用this tool),是否有任何官方方式来确定是否授予完全访问权限?除了尝试在某处创建随机文件并删除它之外,当然……
>新API的可用意图是什么?我发现的所有意图都与处理其他应用程序的文件有关,如果它们支持它,但我找不到任何处理任何文件路径的文件.

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

整篇博文系列涵盖:

> Internal storage,由用户和Google定义
> External storage,由用户和谷歌定义
> Removable storage,事情已经脱轨
> Where Google went wrong with all of this
> Where developers went wrong with all of this

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

点赞