[英]File not found in /data/media/0, but found in /storage/emulated/0
我将Android Studio中的智能手机模拟器用于Nexus 4,API 23。
我通过相机拍摄了照片,并且可以通过Android设备监视器检查文件是否位于以下不同路径中:
/data/media/0/DCIM/Camera/IMG_20160408_143726.jpg (rw-rw-r)
/storage/emulated/0/DCIM/Camera/IMG_20160408_143726.jpg (rw-rw)
不过,在尝试读取文件时,在“ Activity
我有不同的行为:
new File("/data/media/0/DCIM/Camera/IMG_20160408_143726.jpg");
// isFile at false, canRead at false, length at 0
new File("/storage/emulated/0/DCIM/Camera/IMG_20160408_143726.jpg");
// isFile at true, canRead at true, length with a real value
为什么会这样呢?
它取决于构造器,而是使用此方法获取sdcard路径,它将为所有设备找到正确的路径
new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/DCIM/Camera/IMG_20160408_143726.jpg")
您可能想授予您的应用程序root权限,以使其正常运行。 看一下这个例子:
u0_a1@android:/ $ toolbox ls -l /storage/emulated/0/UPDATE* -rw-rw---- root sdcard_r 4997896 2016-09-08 20:08 UPDATE-SuperSU-v2.78.zip u0_a1@android:/ $ toolbox ls -l /data/media/0/UPDATE* /data/media/0/*: Permission denied 1|u0_a1@android:/ $ su root@android:/ # toolbox ls -l /data/media/0/UPDATE* -rw-rw-r-- media_rw media_rw 4997896 2016-09-08 20:08 UPDATE-SuperSU-v2.78.zip
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.