Android Environment 類詳解

Android應用開發中,常使用Environment類去獲取外部存儲目錄,在訪問外部存儲之前一定要先判斷外部存儲是否已經是可使用(已掛載&可使用)狀態,

並且需要在AndroidManifest.xml文件中添加外部存儲讀和寫的權限。

根據官方API文檔,接下來對android.os.Environment類做詳細介紹。

一、Environment類中提供了多個String類型的靜態常量用於標識外部存儲媒體的狀態。

public static final String MEDIA_BAD_REMOVAL 在解除掛載前存儲媒體已經被移除,常量值爲“bad_removal”

public static final String MEDIA_CHECKING 存儲媒體存在並在進行磁盤檢查,常量值爲“checking

public static final String MEDIA_MOUNTED 存儲媒體已經掛載,並且掛載點可讀/寫,常量值爲“mounted”

public static final String MEDIA_MOUNTED_READ_ONLY 存儲媒體已經掛載,掛載點只讀,常量值爲“mounted_ro”

public static final String MEDIA_NOFS 存儲媒體存在,但空白或使用了不支持的文件系統,常量值“nofs

public static final String MEDIA_REMOVED 存儲媒體不存在即被移除,常量值爲“removed”

public static final String MEDIA_SHARED 存儲媒體正在通過USB共享,常量值爲“shared”

public static final String MEDIA_UNMOUNTABLE 存儲媒體無法掛載,一種典型狀況是文件系統損壞,常量值爲“unmountable”

public static final String MEDIA_UNMOUNTED 存儲媒體沒有掛載,常量值爲“unmounted”

public static final String MEDIA_UNKNOWN未知存儲狀態,例如不支持的存儲路徑,常量值爲“unknown”

public static final String MEDIA_EJECTING 存儲媒體正在卸載過程中,常量值爲“ejecting”

注:以上存儲媒體的狀態均可通過方法getExternalStorageState()獲得。

二、Environment類中的數據域提供了Android標準目錄的路徑,以static string類型提供。

public static String DIRECTORY_ALARMS 系統提醒鈴聲(鬧鈴、警報...)存放的標準目錄。

public static String DIRECTORY_DCIM 相機拍攝照片和視頻的標準目錄。

public static String DIRECTORY_DOCUMENTS 存放用戶文件的標準目錄。

public static String DIRECTORY_DOWNLOADS 存放用戶下載內容的標準目錄。

public static String DIRECTORY_MOVIES 電影存放的標準目錄。

public static String DIRECTORY_MUSIC 音樂存放的標準目錄。

public static String DIRECTORY_NOTIFICATIONS 系統通知鈴聲存放的標準目錄。

public static String DIRECTORY_PICTURES 圖片存放的標準目錄。

public static String DIRECTORY_PODCASTS 系統廣播存放的標準目錄。

public static String DIRECTORY_RINGTONES 系統鈴聲存放的標準目錄。

三、構造器(constructor)

public Environment()

四、公有方法(public methods)

public static File getDataDirectory ()

獲得user data的目錄

public static File getDownloadCacheDirectory ()

獲得下載緩存內容的目錄

public static File getExternalStorageDirectory ()

獲得基本的共享或外部存儲器目錄。注:可以通過調用getExternalStorageState()方法類判斷共享或外部存儲器當前狀態,從而得知其是否可以被訪問。

public static File getExternalStoragePublicDirectory (String type)

獲得用於存儲特定類型文件的頂層共享或外部存儲器目錄。

public static String getExternalStorageState ()

獲得外部存儲器的當前狀態。

返回值爲 MEDIA_UNKNOWN,MEDIA_REMOVED,MEDIA_UNMOUNTED,MEDIA_CHECKING,MEDIA_NOFS, MEDIA_MOUNTED,MEDIA_MOUNTED_READ_ONLY,MEDIA_SHARED,MEDIA_BAD_REMOVAL,MEDIA_UNMOUNTABLE其中之一。

public static String getExternalStorageState (File path)

獲得共享或外部存儲器在給定路徑的當前狀態

public static File getRootDirectory ()

獲得存儲Android OS內核的系統分區的根目錄,退出爲只讀的。

public static String getStorageState (File path)

API 21中棄用,代替使用getExternalStorageState(File path)

public static boolean isExternalStorageEmulated ()

......

public static boolean isExternalStorageEmulated (File path)

....

public static boolean isExternalStorageRemovable (File path)

判斷共享或外部存儲媒體在給定的路徑是否是可移除的。

return true  如果存儲設備可以被移除(eg:SD card)

return false 如果存儲設備是內置存儲器或其他不可移除的設備

public static boolean isExternalStorageRemovable ()

判斷基本的共享或外部存儲媒體是否是可移除的。

return true  如果存儲設備可以被移除(eg:SD card)

return false 如果存儲設備是內置存儲器或其他不可移除的設備





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章