簡體   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