Android 6上的EACCES(权限被拒绝),已授予权限
我正在尝试将Android 6上的EACCES(权限被拒绝),已授予权限,android,permissions,android-sdcard,android-permissions,android-6.0-marshmallow,Android,Permissions,Android Sdcard,Android Permissions,Android 6.0 Marshmallow,我正在尝试将响应库保存到外部SD卡,但出现以下错误: java.io.IOException: open failed: EACCES (Permission denied) at java.io.File.createNewFile(File.java:939) at my.app.package.utils.DocumentFileUtils.saveDocument(DocumentFileUtils.java:120) 这是失败的方法: public static String
响应库
保存到外部SD卡
,但出现以下错误:
java.io.IOException: open failed: EACCES (Permission denied)
at java.io.File.createNewFile(File.java:939)
at my.app.package.utils.DocumentFileUtils.saveDocument(DocumentFileUtils.java:120)
这是失败的方法:
public static String saveDocument(String filename, ResponseBody responseBody) {
Logs.document("Saving file " + filename);
File file = createFile(filename);
Logs.document("Full path: " + file.getAbsolutePath());
if (!file.exists()) {
try {
file.getParentFile()
.mkdirs();
file.createNewFile(); //Exception happens here
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
try {
BufferedSource source = responseBody.source();
BufferedSink sink = Okio.buffer(Okio.sink(file));
sink.writeAll(source);
sink.close();
responseBody.close();
return file.getAbsolutePath();
} catch (Exception e) {
responseBody.close();
e.printStackTrace();
if (file.exists()) file.delete();
return null;
}
}
使用createFile创建的文件具有以下路径:
/mnt/media_rw/0123-4567/Android/data/my.app.package/files/document_files/file_name.ext
我在清单
中拥有写入外部存储
权限,并且作为运行时权限,授予该权限(我还可以从应用程序信息中检查)
我遗漏了什么吗?你解决过这个问题吗?没有,我选择了不同的路线,我记不起是哪条了。