・まずは、全容量を取得する。
public static int getTotalMem(File item) { int size = 0; try { StatFs fs = new StatFs(item.getAbsolutePath()); size = fs.getBlockSize() * fs.getBlockCount(); } catch (IllegalArgumentException e) { Logger.error("can't get size.", e); } return size; }本体なら、
public static int getInternalTotalMem() { return getTotalMem(Environment.getDataDirectory()); }
SDカードなら、
public static int getExternalTotalMem() { return getTotalMem(Environment.getExternalStorageDirectory()); }※SDカードの場合は、利用可能かちゃんとチェックしてから実行する必要あり!
・次に空き容量を取得する。
public static int getUsableMem(File item) { int size = 0; try { StatFs fs = new StatFs(item.getAbsolutePath()); size = fs.getBlockSize() * fs.getAvailableBlocks(); } catch (IllegalArgumentException e) { if (Logger.isErrorable()) { Logger.error("can't get size.", e); } } return size; }本体なら、
public static int getInternalUseableMem() { return getUsableMem(Environment.getDataDirectory()); }
SDカードなら、
public static int getExternalUseableMem() { return getUsableMem(Environment.getExternalStorageDirectory()); }以上。
0 件のコメント:
コメントを投稿