package com.example.getMem;
import java.io.File;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.StatFs;
import android.text.format.Formatter;
import android.widget.TextView;
import android.app.Activity;
import android.app.AlertDialog.Builder;
public class MainActivity extends Activity {
private TextView tv_totalSize;
private TextView tv_availabelSize;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv_totalSize=(TextView) findViewById(R.id.totalSize);
tv_availabelSize=(TextView) findViewById(R.id.availabel);
// 獲取存儲空間
File dataFileDir=Environment.getDataDirectory();
String data =getMemoryInfo(dataFileDir);
String []d= data.split("##");
tv_totalSize.setText("內部存儲總大小:" + d[0]);
tv_availabelSize.setText("內部存儲可用空間是:" + d[1]);
//獲取Sd 卡空間
// File SdFileDir=Environment.getExternalStorageDirectory();
// //判斷Sd卡是否可用
// if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
// String sdMemory =getMemoryInfo(SdFileDir);
// String []sd=sdMemory.split("##");
// tv_totalSize.setText("內部存儲總大小:" + sd[0]);
// tv_availabelSize.setText("內部存儲可用空間是:" + sd[1]);
//
// }
}
private String getMemoryInfo(File path) {
long blockSize;
long totalBlockCount;
long avaiLabelCount;
// TODO Auto-generated method stub
StatFs stat = new StatFs(path.getPath());
//檢測系統版本
if(Build.VERSION.SDK_INT >=Build.VERSION_CODES.JELLY_BEAN_MR2){
//獲取每個扇區的大小
blockSize = stat.getBlockSizeLong();
//獲取總共有多少扇區
totalBlockCount=stat.getBlockCountLong();
//獲取可用扇區數量
avaiLabelCount=stat.getAvailableBlocksLong();
}else{
blockSize=stat.getBlockSize();
totalBlockCount=stat.getBlockCount();
avaiLabelCount=stat.getAvailableBlocks();
}
// 磁盤總大小
String totalMemory =Formatter.formatFileSize(this, blockSize*totalBlockCount);
// 可用大小
String availabelMemory=Formatter.formatFileSize(this, blockSize*avaiLabelCount);
return totalMemory+"##"+availabelMemory;
}
}
http://pan.baidu.com/s/1bp0V87d