我试图将一些字符串保存到SD卡。但它是抛出此异常打开失败EACCES(权限被拒绝)。我在一台设备上测试了这个(asus zenfone 5)。我已经在清单文件WRITE_EXTERNAL_STORAGE中声明了权限,安装了我的SD卡并可以从中读取数据(我亲自通过复制一些mp3文件并将其播放)进行检查。因为这是一个手机特定的应用程序,手机内有一个内部和外部存储器,我想保存在外部SD卡中的文件,我写了这样的代码。我通过使用“cd”和“ls”命令获得了使用终端仿真器应用程序的外部SD卡的绝对路径。我的手机没有固定,所以我不能直接发布任何权限更改。我已经尝试所有可能的方法可能通过谷歌和stackoverflow。请帮我开放失败EACCES(权限被拒绝)
public void savePublicExternalFile(String data){
File folder = new File("/Removable/MicroSD/");
//i have also tried File folder = new File("/Removable/MicroSD");
File myFile = new File(folder,"mydata.txt");
WriteData(myFile, data);
}
private void WriteData(File myFile, String data){
if(t){
Log.i("AbsolutePath",myFile.getAbsolutePath());
t = false;
}
FileOutputStream fileOutputStream=null;
try {
fileOutputStream = new FileOutputStream(myFile);
fileOutputStream.write(data.getBytes());
} catch (Exception e) {
Log.i("exception",e.toString());
} finally {
if(fileOutputStream!=null){
try {
fileOutputStream.close();
} catch (IOException e) {
Log.i("exception", e.toString());
}
}
}
}
这是有帮助的,我能写在SD卡的android文件夹,因为文件[1]给了我的路径,有没有什么方法可以使用这个或任何其他方法获得SD卡的根路径? –
耶稣基督,花了我两个小时找到你的答案。非常感谢。我试了很多年的环境调用,但它从来没有用于我的Android 6系统(早期版本工作正常)。这里有我的赞赏! –