【发布时间】:2014-12-09 22:03:43
【问题描述】:
我正在尝试添加 OBB 文件支持,但遇到了一个奇怪的情况。当我调用getExternalStorageDirectory() 时,它返回的路径在我的设备上不存在。
我在我的应用程序开始时调用它:
Log.i( LOG_ID, "XXXXXXXXXXXXXXXX <--- "+Environment.getExternalStorageDirectory().getAbsolutePath() );
返回:
XXXXXXXXXXXXXXXX <--- /storage/emulated/0
但是当我通过adb -d shell 连接并运行ls -al /storage/emulated 时,我得到:
lrwxrwxrwx root root 2013-12-04 15:17 legacy -> /mnt/shell/emulated/0
如您所见,返回的路径 getExternalStorageDirectory() 在我的设备上无效。知道为什么会这样以及如何在不进行硬编码/mnt/sdcard/ 的情况下找到 OBB 文件吗?
编辑:
我刚刚进行了一些进一步的测试:
Works - stat( "/sdcard/Android/obb" );
Fails - stat( "/sdcard/Android/obb/uk.co.mycomp.myapp" );
shell@android:/mnt/shell $ ls -ald /sdcard/Android/obb/
drwxrwxr-x root sdcard_rw 2013-12-18 16:42
shell@android:/mnt/shell $ ls -ald /sdcard/Android/obb/uk.co.mycomp.myapp
drwxrwxr-x root sdcard_rw 2013-12-18 18:36
如您所见,这两个目录是相同的,但我只能访问父目录。这可能与我的问题有任何关系,也可能没有任何关系......
【问题讨论】:
-
您是否在清单中声明了所需的权限?
-
您是否真的尝试过使用代码访问文件?或者你只是假设它不起作用
-
我认为我有正确的权限,但要明确我应该寻找哪个?
-
是的,我已经尝试访问这些文件,但我得到了一个找不到文件的错误,这就是我意识到这个问题的方式......
标签: android