我尝试在/sdcard/
文件夹中获取文件,但它会抛出NullPointerException
然后我试图让/
路径中的文件夹返回
40
factory
usbdisk
sdcard
storage
config
cache
acct
vendor
d
etc
mnt
ueventd.tuna.rc
ueventd.rc
ueventd.goldfish.rc
system
sys
sepolicy
seapp_contexts
sbin
res
... and others
当我在4.3项目中这样做时效果很好!
更新
4.4中的代码不起作用
File file = Environment.getExternalStorageDirectory();
File[] files = file.listFiles();
Debugger.info(files.length); // NullPointerExcepton
for(File f : files){
Debugger.info(f.getName());
}
答案 0 :(得分:3)
Android Developers网站状态(在KitKat的重要行为更改中)
如果您的应用从外部存储中读取...
您的应用无法读取外部存储设备上的共享文件 在Android 4.4上运行,除非您的应用具有READ_EXTERNAL_STORAGE 允许。也就是说,返回的目录中的文件 如果没有,则不再可以访问getExternalStoragePublicDirectory() 许可。但是,如果您只需要访问特定于应用的应用 目录,由getExternalFilesDir()提供,那么你不需要 READ_EXTERNAL_STORAGE权限。
所以请确保你给出了上述的权利。此外,如果您使用的是具有多张SD卡的设备,则可以使用this issue。
答案 1 :(得分:2)
您不应该在代码中硬编码sdcard路径。 相反,您应该通过
获取SD卡路径android.os.Environment.getExternalStorageDirectory()