Android 5(HTC)EACCES(权限被拒绝)

时间:2015-06-12 08:13:01

标签: android android-5.0-lollipop android-permissions android-file

应用无法在应用拥有的目录中的folder/file外部存储上创建android 5(HTC HTC6525LVW os version: 5.0.1)

父{@ 1}}方法返回父文件夹。

[getExternalFilesDirs(String type)][1]已安装。

其他人有这个问题或建议如何解决?

(很遗憾,我没有让此设备对其进行更多测试)

编辑:从一个用户我知道,在此错误之前,她加密了SD卡,然后对其进行了格式化。

4 个答案:

答案 0 :(得分:9)

关于导致它的原因的一些潜在想法:

  1. 如果手机在连接到计算机时以USB存储模式运行,您仍然可以正常部署/调试,但写入操作将失败

  2. 您错过了一项权限:您应在清单文件中检查是否有data

  3. 错误位置的权限:确保您的权限标记(在清单中)位于应用程序的

  4. 写入sdcard文件夹可能会导致此类问题,因此请确保您已写入data而不是{{1}}

  5. 这是我能想到的一切。希望它有所帮助:)

答案 1 :(得分:2)

返回在外部存储上保存应用程序文件的目录的路径。如果当前未安装外部存储,则返回null,因此无法确保路径存在;您需要在可用时再次调用此方法。

另一个选项是您可以检查外部存储是否可用:

String state = Environment.getExternalStorageState();
File filesDir;

// Make sure it's available
if (Environment.MEDIA_MOUNTED.equals(state)) {
 // We can read and write the media
 filesDir = getExternalFilesDir(null);

} else {


 // Load another directory, probably local memory
    filesDir = getFilesDir();
}

答案 2 :(得分:1)

我有同样的问题,但找到确切的解决方案希望这个答案对你有帮助

//Create Folder
File folder = new 
File(Environment.getExternalStorageDirectory().toString()+"/Aqeel/Images");
folder.mkdirs();

//Save the path as a string value
String extStorageDirectory = folder.toString();

//Create New file and name it Image2.PNG
 File file = new File(extStorageDirectory, "Image2.PNG");

答案 3 :(得分:0)

添加manifest.xml文件权限

的权限
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 <uses-permission android:name="android.permission.READ_PHONE_STATE" />