11

リンク :このリンクに基づいて作業しました

サイズ(内部と外部の両方)のサイズを見つけるためにこの行を追加しました。

return availableExternalMemorySize/(1024*1024);

タブレットでテストしました。内部と外部の両方のSDカードサイズを取得しています。

内部ストレージ:

  1. 合計メモリ --1007
  2. 利用可能なメモリ --683

外部ストレージ:

  1. 合計メモリ -- 1763
  2. 利用可能なメモリ -- 1554

しかし、タブレットでは、設定が表示されました。外部ストレージのサイズは 8 GB です。しかし、プログラムでテストしたところ、約 1.7 GB が表示されました。

外部ストレージのサイズを確認する手順は?

4

4 に答える 4

1

非推奨とクロスアベイラビリティを説明するために、これらのメソッドを作成しました。

public static long sdCardFree_bytes() {
    File   path        = Environment.getExternalStorageDirectory();
    StatFs stat        = new StatFs(path.getPath());
    long   free_memory = 0; //return value is in bytes

    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR2) {
        free_memory = stat.getAvailableBlocksLong() * stat.getBlockSizeLong();
    } else {
        free_memory = stat.getAvailableBlocks() * stat.getBlockSize();
    }

    return free_memory;
}

public static long sdCardUsed_bytes() {

    File   path        = Environment.getExternalStorageDirectory();
    StatFs stat        = new StatFs(path.getPath());
    long   free_memory = 0;

    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR2) {
        free_memory = (stat.getBlockCountLong() - stat.getAvailableBlocksLong()) * stat.getBlockSizeLong(); //return value is in bytes
    } else {
        free_memory = (stat.getBlockCount() - stat.getAvailableBlocks()) * stat.getBlockSize(); //return value is in bytes
    }

    return free_memory;
}

public static long sdCardTotal_bytes() {

    File   path        = Environment.getExternalStorageDirectory();
    StatFs stat        = new StatFs(path.getPath());
    long   free_memory = 0;

    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR2) {
        free_memory = stat.getBlockCountLong() * stat.getBlockSizeLong(); //return value is in bytes
    } else {
        free_memory = stat.getBlockCount() * stat.getBlockSize(); //return value is in bytes
    }

    return free_memory;
}
于 2015-11-30T15:09:12.667 に答える
1

getTotalSpace ()getFreeSpace ()またはhttps://developer.android.com/reference/java/io/File.htmlを使用できますgetUsableSpace ()

import java.io.File;
import android.util.Log;
....
File f = getMyFile();
Log.d("MyApp", f.getTotalSpace()+"");
....
于 2016-04-26T13:34:21.777 に答える