第三方应用程序无法从Android 4.4.2版编写SD卡

时间:2014-03-05 06:29:00

标签: android android-ndk

我正在尝试从我的Android应用程序写入SD卡,它出错:

java.io.IOException: open failed: EACCES (Permission denied) from latest version           

- android version :-      4.4.2
- Kernel version :-       3.4.5-699287 dpi@SWDD5015 # 1
                          Thu Feb 13 20:28:09 KST 2014
- Build number :-         KOT49H.I9500XXUFNB3

注意:我的申请有权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

我相信应该使用WRITE_MEDIA_STORAGE权限写入SD卡。

所以当我们尝试

<uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" />

它给出了错误

  

权限仅授予系统应用

在相机应用程序设置中,如果我们提到存储SD卡,那么它可以在SD卡中创建图片,因为它是系统应用程序。如果有人有任何其他解决方案从第三方应用程序写入SD卡,请分享。

This question绝对不是重复的,因为在SAMSUNG构建之前,我可以读取/写入外部SD卡。

答案似乎是,使用new API from API level 19,它们是:

  • Context.getExternalFilesDirs()
  • Context.getExternalCacheDirs()
  • Context.getObbDirs()

此问题的解决方案在above link上。他们添加了沙盒和API。

例如,包名为com.example.foo的应用现在可以在没有权限的外部存储设备上自由访问Android/data/com.example.foo/。这些合成权限是通过将原始存储设备包装在FUSE守护程序中完成的。

我已经在我的设备上使用API​​级别19进行了测试,它工作正常,我可以使用新的API在外部SD卡上创建文件。我想用一个很好的例子给出一个答案,但我不能将问题视为重复。

0 个答案:

没有答案