gpt4 book ai didi

Android 6.0 写入外置SD卡

转载 作者:行者123 更新时间:2023-11-29 14:21:21 26 4
gpt4 key购买 nike

我尝试了在 Android 6.0 上写入外部 SD 卡的所有方法,但我无法在上面写入。

我研究了 stackoverflow,发现了很多东西,但都没有用。这是我的代码

String extPath = System.getenv("SECONDARY_STORAGE") + "/Android/data/com.gvm.externalstorage.externalstoragetest/";
File file = new File(extPath,"myFiles");

if (!file.exists()) {
boolean dirResult = file.mkdirs();
Log.e("Directory Exist", dirResult + " Directory created");
} else {
Log.e("Directory Exist", "Exist");
Log.e("Direcotry Path",file.getAbsolutePath());
}
//String displayname = fileName.replace("%20", " ");
File outputFile = new File(file, "mytest5.txt");
outputFile.createNewFile();

此代码适用于 Android 5.0,但不适用于 Android 6.0。

然后我也尝试了这条路径,这给了我权限错误,我也为运行时权限设置了所有权限和托管代码。

/mnt/media_rw/6AC9-083B

File write failed: java.io.IOException: open failed: EACCES (Permission denied)

如果有人能帮助我,那就太好了,因为我从过去 3 天开始就一直在尝试这个。

谢谢,安维什

最佳答案

经过长时间的努力,我想出了一个解决方案。在 Android 6.0 中,它不会总是使用这个给你 SD 卡路径:

System.getenv("SECONDARY_STORAGE") 

或者这个

Environment.getExternalStorageDirectory()

所以我使用这个检索了外部 SD 卡路径

File[] fs = context.getExternalFilesDirs(null);
String extPath = "";
// at index 0 you have the internal storage and at index 1 the real external...
if (fs != null && fs.length >= 2)
{
extPath = fs[1].getAbsolutePath();
Log.e("SD Path",fs[1].getAbsolutePath());
}

其余的一切都将保持不变以获得许可和所有。

感谢那些帮助过我的人。

关于Android 6.0 写入外置SD卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38989050/

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