gpt4 book ai didi

android - 打开失败的 EACCES(权限被拒绝)

转载 作者:太空宇宙 更新时间:2023-11-03 13:19:06 25 4
gpt4 key购买 nike

我试图将一些字符串保存到 SD 卡。但它抛出了这个异常 open failed EACCES (Permission denied)。我在设备(asus zenfone 5)上对此进行了测试。我已经在 list 文件中声明了权限-WRITE_EXTERNAL_STORAGE,我的sd卡已经挂载,可以写入和读取数据(我已经通过复制一些mp3文件并播放它们来亲自检查它)。因为这是一个特定于手机的应用程序,手机有内部和外部存储,我想将文件保存在外部 sdcard 中,我写了这样的代码。我通过使用“cd”和“ls”命令使用终端模拟器应用程序获得了外部 SD 卡的绝对路径。我的手机没有 Root ,所以我不能直接发布任何权限更改。我已经尝试了 google 和 stackoverflow 可能的所有可能方法。请帮帮我

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());
}
}
}


}

最佳答案

我假设您的 Asus Zenfone 在 Android 版本 >= KitKat 上运行。因此,由于 KITKAT 由于 SD 卡写入策略的重大变化,您将无法在 SD 卡上写入,除了您的 App Private 文件夹(即 /storage/../SD 卡 中的 data/com.example/)。

要访问 SD 卡上的这个文件夹,KitKat 中添加了新的 API。此 API 将返回包含所有应用私有(private)文件夹路径的文件数组。

File[] files = ContextCompat.getExternalFilesDirs(context, null)

默认情况下,0th 位置路径类似于旧 API Environment.getExternalStorageDirectory() 返回的路径,这是主存储。 1st位置(一般)会是其他存储目录,一般是SD卡。使用此文件路径写入 SD 卡。确保在写入任何内容之前验证 SD 卡的安装状态。

希望对您有所帮助。如果您遇到任何其他问题,请告诉我。

关于android - 打开失败的 EACCES(权限被拒绝),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31333046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com