繁体   English   中英

在/ data / media / 0中找不到文件,但在/ storage / emulated / 0中找到文件

[英]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)

Android设备监视器

不过,在尝试读取文件时,在“ 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM