1. 程式人生 > >Android獲取可用記憶體(系統,sd卡,u盤)

Android獲取可用記憶體(系統,sd卡,u盤)

/**
*通過反射獲取不同儲存卡的路徑,主要是用來獲取外掛sd卡路徑,內建sd卡路徑可通過Environment類的方法獲得
*/
public static boolean hasEnoughStorage(Context context) {
//
        StorageManager storageManager = (StorageManager) context.getSystemService
                (context.STORAGE_SERVICE);
        boolean hasEnoughStorage = false;
        try
{ String[] paths = (String[]) storageManager.getClass ().getMethod("getVolumePaths").invoke(storageManager); for (String s : paths) { StatFs statFs = new StatFs(s); //得到分割槽大小 long blockSize = statFs.getBlockSize(); //得到可用分割槽數
long availableBlocks = statFs.getAvailableBlocks(); //可用分割槽大小,單位kb long availableStorage = (blockSize * availableBlocks) / 1024;//kb if (availableStorage > 100) { hasEnoughStorage = true; } } } catch
(IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } return hasEnoughStorage; }