Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android Environment類的接口詳解

Android Environment類的接口詳解

編輯:關於Android編程

Android應用開發中,常使用Environment類去獲取外部存儲目錄,在訪問外部存儲之前一定要先判斷外部存儲是否已經是可使用(已掛載&可使用)狀態,
並且需要在AndroidManifest.xml文件中添加外部存儲讀和寫的權限。
Environment類中提供了幾個靜態常量用於標識外部存儲的狀態,這些狀態都是String類型
MEDIA_BAD_REMOVAL 在沒有掛載前存儲媒體已經被移除。
MEDIA_CHECKING 正在檢查存儲媒體。
MEDIA_MOUNTED 存儲媒體已經掛載,並且掛載點可讀/寫。
MEDIA_MOUNTED_READ_ONLY 存儲媒體已經掛載,掛載點只讀。
MEDIA_NOFS 存儲媒體是空白或是不支持的文件系統。
MEDIA_REMOVED 存儲媒體被移除。
MEDIA_SHARED 存儲媒體正在通過USB共享。
MEDIA_UNMOUNTABLE 存儲媒體無法掛載。
MEDIA_UNMOUNTED 存儲媒體沒有掛載。
可以通過靜態方法getExternalStorageState()來獲取外部存儲的狀態,如果程序需要在外部存儲裡面讀寫數據,必須要先判斷:

if(Environment.MEDIA_MOUNTED.equals(
Environment.getExternalStorageState())
|| !Environment.isExternalStorageRemovable())

然後,添加外部存儲讀和寫的權限:

    
    

在Environment中還提供了Android標准目錄的路徑,以String類型提供。
DIRECTORY_ALARMS 系統提醒鈴聲存放的標准目錄。
DIRECTORY_DCIM 相機拍攝照片和視頻的標准目錄。
DIRECTORY_DOWNLOADS 下載的標准目錄。
DIRECTORY_MOVIES 電影存放的標准目錄。
DIRECTORY_MUSIC 音樂存放的標准目錄。
DIRECTORY_NOTIFICATIONS 系統通知鈴聲存放的標准目錄。
DIRECTORY_PICTURES 圖片存放的標准目錄
DIRECTORY_PODCASTS 系統廣播存放的標准目錄。
DIRECTORY_RINGTONES 系統鈴聲存放的標准目錄。

static File getDataDirectory() 獲得data的目錄(/data)。
static File getDownloadCacheDirectory() 獲得下載緩存目錄。(/cache)
static File getExternalStorageDirectory() 獲得外部存儲媒體目錄。(/mnt/sdcard or /storage/sdcard0)
static File getRootDirectory() 獲得系統主目錄(/system)

除了用Environment獲取存儲目錄之外,還可以通過把路徑寫死的方式,比如要讀取外部存儲/mnt/sdcard目錄下的文件,可以在程序中直接用全路徑,
但是這樣做是很不好的,應該Android實在是太開放了,外部存儲的目錄的什麼還是要固件制作商才知道,但是有一點是毋庸置疑的,就是Android框架層裡面
已經是指定好了Environment.getDownloadCacheDirectory()的返回路徑。所以,盡量用這種方式來獲取和存儲數據,以免固件廠商不同而造成路徑的差異。

Android的實際開發中還用了兩個非常重要的緩存目錄,一個是應用程序自己的緩存空間,另一個是外部存儲為該應該程序提供的緩存空間。有什麼差別?
使用過LruCache和DisLruCache的童鞋應該知道。
這兩個方法是通過上下文對象Context獲取的,只要應用程序被卸載,這兩個目錄下的文件都要被清空。
context.getCacheDir() 獲取應用程序自己的緩存目錄
context.getExternalCacheDir() 獲取應用程序在外部存儲的存儲目錄

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved