import java.io.File; import android.app.Activity; import android.os.Bundle; import android.os.Environment; import android.os.StatFs; import android.text.format.Formatter; import android.util.Log; public class Memory extends Activity { public static final String TAG = "Memory"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); updateMemoryStatus(); } private void updateMemoryStatus() { String status = Environment.getExternalStorageState(); String readOnly = ""; // 是否只读 if (status.equals(Environment.MEDIA_MOUNTED_READ_ONLY)) { status = Environment.MEDIA_MOUNTED; readOnly = getString(R.string.read_only); } if (status.equals(Environment.MEDIA_MOUNTED)) { try { File path = Environment.getExternalStorageDirectory(); StatFs stat = new StatFs(path.getPath()); long blockSize = stat.getBlockSize(); long totalBlocks = stat.getBlockCount(); long availableBlocks = stat.getAvailableBlocks(); // SD卡总容量 String sdSize = formatSize(totalBlocks * blockSize); Log.i(TAG, "SD卡总容量: " + sdSize); // SD卡剩余容量 String sdAvail = formatSize(availableBlocks * blockSize) + readOnly; Log.i(TAG, "SD卡剩余容量: " + sdAvail); } catch (IllegalArgumentException e) { status = Environment.MEDIA_REMOVED; } } File path = Environment.getDataDirectory(); StatFs stat = new StatFs(path.getPath()); long blockSize = stat.getBlockSize(); long availableBlocks = stat.getAvailableBlocks(); // 手机内存剩余容量 String memoryAvail = formatSize(availableBlocks * blockSize); Log.i(TAG, "手机内存剩余容量: " + memoryAvail); long totalBlocks = stat.getBlockCount(); // 手机内存总容量 String memorySize = formatSize(totalBlocks * blockSize); Log.i(TAG, "手机内存总容量: " + memorySize); } // 格式化 转化为.MB格式 private String formatSize(long size) { return Formatter.formatFileSize(this, size); } }
|
|
来自: wanp_personal > 《Android》