ページ

2012年5月13日日曜日

端末の容量を取得する

端末本体とSDカードの容量を取得してみる。

・まずは、全容量を取得する。
    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 件のコメント:

コメントを投稿