[英]WRITE_EXTERNAL_STORAGE Possible target folders
擁有WRITE_EXTERNAL_STORAGE
權限時,我希望有權在整個文件系統上進行寫(例如/sdcard
, /storage/emulated/0
, /storage/sdcard0
, /mnt/sdcard
等)
但是由於內部FS結構不同,我無法真正確定目標設備上允許的文件夾。
當前,我使用Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
來獲取downloads文件夾,但是我認為這不是我唯一可以使用的文件夾。
因此有兩個問題:
使用Environment.getExternalStorageDirectory()
獲取可用的外部存儲目錄。
您將獲得Android外部存儲目錄。 如果用戶已將其安裝在計算機上,已從設備中刪除或發生了其他問題,則該目錄當前可能無法訪問。 您可以使用getExternalStorageState()
確定其當前狀態。
注意:請勿在此處與“外部”一詞混淆。 最好將此目錄視為媒體/共享存儲。 它是一個文件系統,可以保存相對大量的數據,並且可以在所有應用程序之間共享(不強制執行權限)。 傳統上,這是SD卡,但也可以將其實現為設備中的內置存儲,該設備不同於受保護的內部存儲,並且可以作為文件系統安裝在計算機上。
對於android,只有一個外部存儲,它通過getExternalStorageDirectory()
返回,因此默認情況下應使用該外部存儲。
但是,公共掛載點通常對運行您的應用程序的用戶進程具有rw
權限,因此您也可以在其中寫入。 獲得root權限,您幾乎可以在任何地方編寫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.