StatFsクラスを使用する次のヘルパークラスを使用します。
public class MemoryUsage{
/*
Returns size in MegaBytes.
*/
public int TotalMemory()
{
StatFs statFs = new StatFs(Environment.getExternalStorageDirectory().getAbsolutePath());
int Total = (statFs.getBlockCount() * statFs.getBlockSize()) / 1048576;
return Total;
}
public int FreeMemory()
{
StatFs statFs = new StatFs(Environment.getExternalStorageDirectory().getAbsolutePath());
int Free = (statFs.getAvailableBlocks() * statFs.getBlockSize()) / 1048576;
return Free;
}
public int BusyMemory()
{
StatFs statFs = new StatFs(Environment.getExternalStorageDirectory().getAbsolutePath());
int Total = (statFs.getBlockCount() * statFs.getBlockSize()) / 1048576;
int Free = (statFs.getAvailableBlocks() * statFs.getBlockSize()) / 1048576;
int Busy = Total - Free;
return Busy;
}
}
内部メモリを計算する必要がある場合は、次のように変更します。
StatFs statFs = new StatFs(Environment.getExternalStorageDirectory().getAbsolutePath());
これに:
StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());