存储设备的总大小=区块大小*区块数目
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize; //每一个存储块的大小
long tatalBlocks; //存储块的总数
long avaliableBlocks; //可以使用的存储块的个数
//获取当前的版本的等级,版本大于18也就是4.4.2,使用没过时的api
if(Build.VERSION.SDK_INT > Build.VERSION_CODES.JELLY_BEAN_MR2){
blockSize = stat.getBlockSizeLong(); //每一个存储块的大小
tatalBlocks = stat.getBlockCountLong(); //存储块的总数
avaliableBlocks = stat.getAvailableBlocksLong(); //可以使用的存储块的个数
}else{
blockSize = stat.getBlockSize(); //每一个存储块的大小
tatalBlocks = stat.getBlockCount(); //存储块的总数
avaliableBlocks = stat.getAvailableBlocks(); //可以使用的存储块的个数
}
TextView tv = (TextView) findViewById(R.id.tv);
tv.setText(formatSize(avaliableBlocks * blockSize));
}
private String formatSize(long size){
return Formatter.formatFileSize(this, size);
}