import java.io.File;
import android.os.Environment;
/**
* 環境工具類
* @author 任俊傑
*
*/
public class EnvironmentUtil {
/**
* 外部存儲是否可讀
* @return 如果可用返回true,否則返回false
*/
public static boolean isExternalStoreReadable() {
String state = Environment.getExternalStorageState();
if( state.equals( Environment.MEDIA_MOUNTED ) ||
state.equals( Environment.MEDIA_MOUNTED_READ_ONLY ) ||
state.equals( Environment.MEDIA_SHARED ) ) {
return true;
}else {
return false;
}
}
/**
* 外部存儲是否可寫
* @return 如果可以寫則返回true,否則返回false
*/
public static boolean isExternalStoreWritable() {
String state = Environment.getExternalStorageState();
if( state.equals(Environment.MEDIA_MOUNTED) ||
state.equals(Environment.MEDIA_SHARED)){
return true;
}else {
return false;
}
}
/**
* 得到外部存儲可用的空間
* @return 剩餘空間的大小,單位是Byte
*/
public static long getExternalStoreAvailableSize(){
if(isExternalStoreWritable()) {
// 取得sdcard文件路徑
File pathFile = Environment.getExternalStorageDirectory();
android.os.StatFs statfs = new android.os.StatFs(pathFile.getPath());
// 獲取SDCard上每個block的SIZE
long nBlocSize = statfs.getBlockSize();
// 獲取可供程序使用的Block的數量
long nAvailaBlock = statfs.getAvailableBlocks();
// 計算 SDCard 剩餘大小Byte
long nSDFreeSize = nAvailaBlock * nBlocSize ;
return nSDFreeSize;
}
return 0;
}
}
android外存儲的狀態
android設備的外存儲,不僅僅指SD卡,當然最常見的就是SD卡,但現在很多手機自帶的空間就比較大比如8G或16G或32G,這些空間,android設備在識別的時候也把它們當作是外部存儲,這些外部存儲有下面這些狀態:
MEDIA_BAD_REMOVAL
如果外部存儲沒有被移出就把直接拔掉後的狀態(就像我們在pc上面使用u盤一樣,我們沒有安全移出u盤,就把u盤拔掉)
MEDIA_CHECKING
當外存儲剛被連接到手機上,手機要對外存儲進行檢測,還有就是手機開機後也要對外存儲設置進行檢測,在這檢測過程中就是這一狀態。
MEDIA_MOUNTED
當外存儲是可以讀,也可以寫的時候,也就是外存儲正常的時候大多數的狀態。如果有的外存儲有寫保護並打開了,那麼這個外存儲設置連接後,就只可以被讀了,就不是這個狀態了。
MEDIA_MOUNTED_READ_ONLY
如果外存儲連接到手機上,並且這個外存儲已經打開發寫保護開關,那麼就是這個狀態。
MEDIA_NOFS
當外存儲壞了使存儲空間爲0(常見的我們把u盤插入pc上時顯示0字節空間)或者外存儲所用的文件系統格式系統不認識那麼就是這個狀態
REMOVED
如果外存儲不存在則是這個狀態
MEDIA_SHARED
這個在手機上面比較少見,但在pc上很常見,比如在pc上面,我們把手機連接到電腦的時候,有的手機就會顯示一個選擇,是充電還是存儲,這個存儲就是分享受手機當中sd卡的存儲,這個時候pc既有讀的權限也有寫的權限,還有手機本身的存儲空間,還有照像機等連接電腦後等。
MEDIA_UNMOUNTABLE
這個是手機上面的外存儲存在,但系統不能掛載它,常見的就是手機能夠識這個外存儲,並且也能夠識別外存儲的文件系統,但外存儲的文件系統出現問題了。
MEDIA_UNMOUNT
當手機的外存儲存在,但沒有掛載就是這個狀態(就像我們把u盤從pc上安全移除後,如果我們不把u盤從pc上拔下來,就是這個狀態)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.