外部SD卡权限被拒绝(JellyBean 4.2.2)

时间:2014-01-15 07:52:20

标签: android

我有一个应用程序,我想将文件写入SD卡。

SD卡的路径是

  

的/ mnt / extsd

当我尝试使用mkdirs()创建文件或目录时,它返回false。

我也正在

  

打开失败:EACCES(权限被拒绝)

我的平板电脑中安装了ES File explorer。它能够将文件复制到SD卡。我不知道它是怎么做的。

请帮忙!!提前谢谢。

3 个答案:

答案 0 :(得分:1)

修改

使用

String extsdPath = System.getenv("SECONDARY_STORAGE"); // will return you /mnt/extsd/

即使在那之后,

转到adb shell中的终端点击“ls -l / mnt /”命令 如果

d---rwxr-x system   media_rw          1970-01-01 05:30 extsd
d---rwxr-x system   sdcard_rw          1970-01-01 05:30 sdcard

如果是 media_rw 组,则您的应用程序无权编写“/ mnt / extsd /”。该权限仅授予系统应用程序。这是Google报告的错误。

参考链接:google group post

答案 1 :(得分:1)

问题出在果冻豆上

这项工作对我来说

String path = null;
      if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT){
          path = getCacheDir() + File.separator + "name";
         } else{
          path = Environment.getExternalStorageDirectory() + File.separator + "name";
         }

答案 2 :(得分:0)

将权限赋予/ mnt / media_rw / external_SD:

mount -o remount,rw /   
chmod 770 /mnt/media_rw/.   
mount -o remount,ro /