Android Environment.getExternalStorageState詳解

如果我們想要讀取或者向SD卡寫入,這時就必須先要判斷一個SD卡的狀態,否則有可能出錯。
那麼SD卡狀態爲什麼時才能讀取呢,經過我的各種情況的實踐,大致如下:


SD狀態
MEDIA_MOUNTED SD卡正常掛載
MEDIA_REMOVED 無介質
MEDIA_UNMOUNTED         有介質,未掛載,在系統中刪除
MEDIA_BAD_REMOVAL 介質在掛載前被移除,直接取出SD卡
MEDIA_CHECKING 正在磁盤檢查,剛裝上SD卡時
MEDIA_SHARED SD卡存在但沒有掛載,並且通過USB大容量存儲共享,操作打開USB存儲
MEDIA_MOUNTED_READ_ONLY sd卡存在並且已掛載,但是掛載方式爲只讀
MEDIA_NOFS 介質存在但是爲空白或用在不支持的文件系統
MEDIA_UNMOUNTABLE 存在SD卡但是不能掛載,例如發生在介質損壞


通過上表可以看出,只有在SD卡狀態爲MEDIA_MOUNTED時/mnt/sdcard目錄纔是可讀可寫,並且可以創建目錄及文件。


檢查SD卡是否可讀寫
Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState());


讀寫SD卡記得加下面這兩個權限:
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

生成一個文件或者目錄

File path = new File(Environment.getExternalStoragePublicDirectory("/home") + "/" + "tmp");

path.exists()

path.mkdirs()

for (File file : path.listFiles()) 

{
 file.delete();
}


參考文檔
http://blog.csdn.net/yuzhiboyi/article/details/8645730


時間:

起草於 2015-10-14




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