2011-11-15 25 views
2

是否有任何功能/方法可以檢測手機中所有類型的不同存儲及其名稱。我的意思是如果您的設備上有多個可用內存,則會檢測到所有內部/外部存儲。以及如何檢測是否有可用的SD卡?Android獲取所有可用的存儲設備

在此先感謝!

+0

請看下面,可能會對你有所幫助。
http://stackoverflow.com/questions/7450650/how-to-list-additional-external-storage-folders-mount-points/15131810#15131810 – boiledwater

回答

4

我不知道其他類型的存儲設備,我只知道Android的內部存儲和外部存儲設備。

現在對於檢查可用外部存儲類似,

public static boolean isSdPresent() { 

return android.os.Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED); 

} 

return type boolean(true->available,false->NA). 

而對於內部存儲,(內部存儲始終保持(目前),所以沒有必要檢查)只是得到這樣,

現在
File path = Environment.getDataDirectory(); 

,在這兩種情況下,檢查可用內存和使用的內存,

StatFs stat = new StatFs(path.getPath()); 
long blockSize = stat.getBlockSize(); 
long availableBlocks = stat.getAvailableBlocks(); 
return Formatter.formatFileSize(this, availableBlocks * blockSize); 
+0

'getBlockSize()'不推薦使用,您可以直接使用'改爲使用path.getFreeSpace()'。 –

1

試試這個..

public static boolean isSdCardPresent() { 

     return android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED); 

     } 
相關問題