1.sd狀態
sd狀態 | 現象描述 | /mnt/sdcard目錄是否存在 | canRead返回 | canWrite返回 |
MEDIA_MOUNTED | SD卡正常掛載 | true | true | true |
MEDIA_REMOVED | 無介質 | true | false | false |
MEDIA_UNMOUNTED | 有介質,未掛載,在系統中刪除 | true | false | false |
MEDIA_BAD_REMOVAL | 介質在掛載前被移除,直接取出SD卡 | true | false | false |
MEDIA_CHECKING | 正在磁盤檢查,剛裝上SD卡時 | true | false | false |
MEDIA_SHARED | SD卡存在但沒有掛載,並且通過USB大容量存儲共享,操作打開USB存儲 | true | false | false |
MEDIA_MOUNTED_READ_ONLY | SD卡存在並且已掛載,但是掛載方式為只讀 | - | - | - |
MEDIA_NOFS | 介質存在但是為空白或用在不支持的文件系統 | - | - | - |
MEDIA_UNMOUNTABLE | 存在SD卡但是不能掛載,例如發生在介質損壞 | - | - | - |
2.讀取SD卡狀態的用處
讀取SD卡狀態為MEDIA_MOUNTED是/mnt/sdcard目錄才能可讀可寫,讀取SD卡時一般會這樣寫:
String state; String path; state = Environment.getExternalStorageState(); if (state.equals(Environment.MEDIA_MOUNTED)) { path = Environment.getEcternalStorageDirectory().getAbsolutePath(); }
讀寫SD卡的兩個權限:
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />