在Android> 4.4上的SD卡上拒绝../Android/data中创建包目录

时间:2014-10-29 15:54:27

标签: android android-sdcard android-4.4-kitkat

我无法创建" com.foo.Example"我的应用程序的文件夹在" / storage / extSdCard / Android / data"从应用程序内部。如果使用文件管理器手动创建没有问题,只需使用简单的mkdir创建第一个就返回false。 我使用了清单中声明的​​包名并在整个过程中使用,并且我在那里也有相应的WRITE_EXTERNAL_STORAGE权限。 如果应用程序无法创建,那么此文件夹来自何处?

1 个答案:

答案 0 :(得分:4)

我假设您正在使用getExternalFilesDir(),否则,您想要转换为它。 getExternalFilesDir(),当传递null时,将为您的应用程序创建一个私有目录,如果它尚未存在则返回该句柄。

您需要查看this guide,其中包含有关如何写入外部存储空间所需的所有信息。

至于您在KitKat上遇到此问题的原因,Google更改了外部存储的权限模式,以防止应用写入SD卡上的任意文件夹,从而提供更好的安全性,并使事情更有条理。但是,很酷的部分是getExternalFilesDir()甚至不需要使用许可!它始终适用于您的应用程序。

希望有所帮助!