<main>
<article class="baidu_pl">
Environment.getExternalStorageState介紹
如果我們想要讀取或者向SD卡寫入,這時就必須先要判斷一個SD卡的狀態(tài)窒朋,否則有可能出錯。
那么SD卡狀態(tài)為什么時才能讀取呢蝗岖,經(jīng)過我的各種情況的實踐侥猩,大致如下:
標題: SD狀態(tài) 現(xiàn)象描述 /mnt/sdcard目錄是否存在 canRead canWrite
** 在/mnt/sdcard創(chuàng)建文件 在/mnt/sdcard創(chuàng)建文件夾**
MEDIA_MOUNTED SD卡正常掛載 TRUE TRUE TRUE TRUE TRUE
MEDIA_REMOVED 無介質(zhì) TRUE FALSE FALSE false: 原因Permission denied FALSE
MEDIA_UNMOUNTED 有介質(zhì),未掛載抵赢,在系統(tǒng)中刪除 TRUE FALSE FALSE false: 原因Permission denied FALSE
MEDIA_BAD_REMOVAL 介質(zhì)在掛載前被移除欺劳,直接取出SD卡 TRUE FALSE FALSE false: 原因Permission denied FALSE
MEDIA_CHECKING 正在磁盤檢查,剛裝上SD卡時 TRUE FALSE FALSE false: 原因Permission denied FALSE
MEDIA_SHARED SD卡存在但沒有掛載铅鲤,并且通過USB大容量存儲共享划提,操作打開USB存儲 TRUE FALSE FALSE false: 原因Permission denied FALSE
MEDIA_MOUNTED_READ_ONLY sd卡存在并且已掛載,但是掛載方式為只讀 - - 無法模擬邢享,SD卡不允許修改權(quán)限
MEDIA_NOFS 介質(zhì)存在但是為空白或用在不支持的文件系統(tǒng) - - 無法模擬鹏往,SD卡格式化后再加載會自動生成系統(tǒng)文件
MEDIA_UNMOUNTABLE 存在SD卡但是不能掛載,例如發(fā)生在介質(zhì)損壞 - - 無法模擬
通過上表可以看出骇塘,只有在SD卡狀態(tài)為MEDIA_MOUNTED時/mnt/sdcard目錄才是可讀可寫伊履,并且可以創(chuàng)建目錄及文件袜漩。
所以我們讀取SD卡時一般會這么寫:
String state;
String path;
state = Environment.getExternalStorageState();
if(state.equals(Environment.MEDIA_MOUNTED)){
path = Environment.getExternalStorageDirectory().getAbsolutePath();
}
讀寫SD卡記得加下面這兩個權(quán)限:
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
</article>
</main>