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