【发布时间】:2015-01-26 07:48:50
【问题描述】:
我一直在尝试将文件从我的应用程序写入外部 sdcard,但是它没有写入,我的测试手机是 Galaxy Duos 和 LG,当我在 LG 手机上尝试时它工作得很好,但是 LG 手机android版本是4.1.2。而galaxy是4.4.2,我想这与kitkat 4.4中的SDCard更改有关,想知道是否有人可以解决它?
【问题讨论】:
标签: android
我一直在尝试将文件从我的应用程序写入外部 sdcard,但是它没有写入,我的测试手机是 Galaxy Duos 和 LG,当我在 LG 手机上尝试时它工作得很好,但是 LG 手机android版本是4.1.2。而galaxy是4.4.2,我想这与kitkat 4.4中的SDCard更改有关,想知道是否有人可以解决它?
【问题讨论】:
标签: android
在 4.4 中,应用程序无法将数据写入外部 SD 卡上的任何位置。应用程序只能将数据写入外部卡上的某些文件夹(在 /extSdCard/Android/data/ 路径下)。这是谷歌施加的新限制,旨在允许用户在卸载应用程序后删除与应用程序关联的所有数据。
【讨论】:
在 Android 4.4 (KitKat) 中,Google 阻止了应用程序写入 SD 卡,除非是非常特定的沙盒位置。应用程序对通过 Context.getExternalFilesDirs()、Context.getExternalCacheDirs() 等获得的特定于包的目录仅具有直接写入访问权限。“直接”访问被定义为使用传统的文件访问 API,例如POSIX 开放()。对这些辅助外部存储设备的其余部分的直接访问对于应用程序仍然是只读的。
但是,应用可以使用新的 CREATE_DOCUMENT Intent 在辅助外部存储设备上的包特定目录之外创建/写入文件,这让用户参与文件创建过程。
值得注意的是,Google 的 Nexus 设备不支持 micro SD 卡;但是,许多其他 Android 设备确实具有微型 SD 卡功能。从安全角度来看,之前版本的 Android 使设备容易受到攻击,但 Google 现在通过限制第三方应用可以使用 Micro SD 卡执行的操作来解决这些安全问题。
【讨论】:
the new CREATE_DOCUMENT intent, which involves the user in the file creation process.。好的。我以前听过这些话。 involves 是什么意思?你自己试过吗?请给出一个工作代码示例。