gpt4 book ai didi

java - Environment.getExternalStorageDirectory() 返回错误的路径

转载 作者:行者123 更新时间:2023-11-30 11:03:45 25 4
gpt4 key购买 nike

我有下一种情况:Android 4.1,设备没有外部 SD 卡。以下代码:

File dir = new File( Environment.getExternalStorageDirectory() ); 

返回
/storage/sdcard0

然后我尝试在那里创建一个文件并得到错误
java.io.IOException: open failed: EACCES (Permission denied)
我的应用程序在它的 list :

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

为了解决这个问题,我启动了 adb 并获得了文件列表,这是 fragment :

lrwxrwxrwx root root 2000-01-01 03:12 sdcard ->/storage/sdcard0
lrwxrwxrwx root root 2000-01-01 03:12 sdcard2 ->/storage/sdcard1
d--xr-xr-x 系统 sdcard_r 2000-01-01 03:12 存储

我没有权限访问 /storage/sdcard0 但我可以访问 /storage/sdcard1 有目录:
艾比
闹钟
安卓
书籍
猎豹浏览器
数码相机
下载
幻灯片
等等

getExternalStorageDirectory() 似乎效果不佳。由于其他应用程序可以在正确的位置写入文件,这看起来很奇怪。我做错了什么?

更新:
getExternalStorageState() 返回“已删除”

我忽略了 getExternalStorageDirectory() 的结果并手动将路径设置为“/storage/sdcard1”然后一切正常,我可以创建目录和文件。

最佳答案

我已经解决了这个问题,这是一个异国情调的问题。最初的设备有一个外部 SD 卡,这张卡是“默认内存”。然后 SD 卡已被移除,但默认内存尚未切换到内部“内置”存储。结果,系统一直返回不正确的存储路径,直到我更正了“默认内存”设置并且问题消失了。

关于java - Environment.getExternalStorageDirectory() 返回错误的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30216127/

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