簡體   English   中英

是否有可靠的方法來查找物理SD卡的路徑

[英]is there a reliable way to find the path of a physical SD card

我知道這個話題正在積極討論中,但是我找不到合適的答案。 我正在創建一個簡單的文件瀏覽器作為我的應用程序的一部分,目前我對android文件系統完全感到困惑。

第一個問題:我正在LG Nexus 5上進行測試,它當然沒有物理SD。 Environment.getExternalStorageDirectory()返回/ storage / emulated / 0 ,我可以使用此路徑列出所有目錄和文件。 但是現在魔術開始了:

使用外殼程序,我可以找到兩個具有相同內容的目錄( / emulated / legacysdcard0 )(與使用Environment.getExternalStorageDirectory()時的結果相同)。 但是上面的方法o.0沒有給出../emulated/0路徑,這到底是什么?

在此處輸入圖片說明

在此處輸入圖片說明

第二個問題:據我所知,查找物理SD卡的唯一方法是查找不同制造商使用的路徑列表,並檢查是否存在這些路徑。 那是對的嗎?

正確, Environment.getExternalStorageDirectory()返回設備上“主要”共享存儲頂部的路徑,許多設備選擇在該路徑上模擬內部存儲。

從KitKat開始,您可以通過Context.getExternalFilesDirs()Context.getExternalCacheDirs()來訪問“輔助”共享存儲設備。 support-v4軟件包中還提供了這些API的向后兼容版本。

請注意,當前沒有用於確定輔助存儲設備頂級路徑的API。 如果絕對需要,則可以通過一次將父目錄MEDIA_UNKNOWN一個,直到Environment.getStorageState()返回MEDIA_UNKNOWN來派生它們。

除了這些公共API外,您通過瀏覽procfs等發現的所有其他詳細信息都是在以后的Android版本中可能會更改的實現詳細信息。 例如,由於使用Linux安裝名稱空間的共享存儲分離在多用戶設備上的工作方式,因此存在重復的安裝點。 此處有更多技術細節:

http://source.android.com/devices/tech/storage/index.html#multi-user-external-storage

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM