根據我的猜測,每個用戶都可以使用內部存儲。如果模擬存儲是為特定用戶創建的存儲位置,則在 / storage / emulated / 0
中創建的文件是否應該出現在 / storage / sdcard0
中?我認為不會,因為用戶創建的文件應僅以仿真方式顯示,否則由用戶創建的文件將可供所有其他用戶查看。
根據我的猜測,每個用戶都可以使用內部存儲。如果模擬存儲是為特定用戶創建的存儲位置,則在 / storage / emulated / 0
中創建的文件是否應該出現在 / storage / sdcard0
中?我認為不會,因為用戶創建的文件應僅以仿真方式顯示,否則由用戶創建的文件將可供所有其他用戶查看。
我已經檢查了我的其中一台設備,並且由於已經懷疑註釋鏈,因此您不必擔心每個人都可以訪問其他人的數據。首先:
/ storage / sdcard0 -> / storage / emulated / legacy
這意味著,它只是一個符號鏈接,始終指向當前用戶:
/ storage / emulated / legacy -> / mnt / shell / emulated / 0
(第一個用戶–在我的情況下是唯一一)。其次,通常在哪裡尋找它:
/ sdcard -> / storage / emulated / legacy
再次進行相同的遊戲。因此,對於仿真的SD卡(又名“內部SD卡”),Android系統會謹慎地將其映射到當前用戶。不確定外部SD卡(如果可以例如在多個用戶之間共享數據)通常在 / storage / sdcard1
中找到:
$ mount | grep sdcard / dev / block / vold / 179:65 / mnt / media_rw / sdcard1 vfat […] / dev / fuse / storage / sdcard1保險絲[…] $ ls / mnt / media_rw / sdcard1 / mnt / media_rw / sdcard1:權限被拒絕$ su -c“ ls / mnt / media_rw / sdcard1” [來自外部SD的數據卡]
因此您可以看到外部SD卡只能用root權限直接訪問 ,為什麼“普通用戶”必須通過覆蓋的FUSE支架進行訪問因此,系統可能會再次注意每個用戶只能在該位置訪問他/她自己的數據,我對內部結構還不夠熟悉,無法肯定地說(甚至不能說那裡到底做了什麼)。
現在,對於您的明確問題,在 / storage / emulated / 0
中創建的文件是否應該出現在 / storage / sdcard0
中:您說的是 / mnt / shell / emulated / 0
(我在設備上找不到 / storage / emulated / 0
),從經驗上講,他們當然可以,因為它們都是相同的位置: / storage / sdcard0 -> / storage / emulated / legacy -> / mnt / shell / emulated / 0
–表示 / storage / sdcard0
顯示 / mnt / shell / emulated / 0
中包含的內容。但是您不必擔心:由於存在“中間人”( / storage / emulated / legacy
), / storage / sdcard0
始終指向“已記錄”的存儲-in user” –例如第二個用戶看那裡,他將看到 / mnt / shell / emulated / 1
中的內容(或他/她所模擬的存儲區域)。
因此,作為PS,讓我從註釋中總結一下內容,作為一個簡短的FAQ:
另請參見:
Expensive Toys先生說:“令我們感到驚訝的是,直到蜂窩蜂窩開始出現此問題時,仍然出現。
因此, / storage / emulated / 0 / DCIM / Camera
是與常規DCIM / Camera文件夾相同的文件夾。它只是一個符號鏈接。因此,文件實際上位於正確的位置,您只需要一個應用程序即可將錯誤的數據放入MediaStore數據庫中。
從PC訪問文件時,實際上是在枚舉MediaStorage數據庫中的文件。它不拉傳統目錄列表。因此,您所看到的內容基於該數據庫中的內容以及該數據庫中的路徑條目。
數據庫中指向仿真目錄的文件未顯示,因為它們被假定為與普通DCIM /相機相同的物理目錄重複。發生的情況是,一些寫得不好的第三方應用程序正在使用 / storage / emulated / 0 / DCIM / Camera
路徑(而不是DCIM / Camera的正確根路徑)將條目插入數據庫。這意味著當您連接到PC時,MTP服務看不到它們。
通常,解決此問題的最簡單方法是清除MediaStore數據庫,以從中刪除不良條目。 MediaStore數據庫,然後讓系統重新索引文件並使用正確的路徑放入數據庫。清除DataFind外部存儲,選擇它,選擇存儲,然後清除DataTurn關閉電話,重新打開電話,等待索引器服務重建數據。
完成後,文件應顯示在正確的目錄樹中,並且在PC上可見。根據電話上文件的數量,服務在電話目錄中移動,獲取元數據,創建縮略圖等時,重建媒體數據庫可能需要10到20分鐘的時間。