在進行Android手機APP開發的時候,絕對會少不了與存儲打交道,而其中的手機存儲空間大小,可用存儲空間大小等相關參數是必須的。爲了保證數據存儲,所以就必須要在之前確認可用空間足夠使用,以下爲獲取Android手機存儲空間相關信息的核心代碼:
import cn.guyouda.Demo;
import java.io.File;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.StatFs;
import android.app.Activity;
import android.text.format.Formatter;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
@SuppressWarnings("deprecation")
@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 totalBlocks;
long availableBlocks;
//由於JELLY_BEAN_MR2之前的版本和之後的版本獲取方式有差異,所以進行判斷,確保能夠在所有版本手機上正確運行
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2){
blockSize = stat.getBlockSizeLong(); //每個存儲塊大小,單位:字節
totalBlocks = stat.getBlockCountLong(); //總共的存儲塊數量
availableBlocks = stat.getAvailableBlocksLong();//可用的存儲塊數量
}
else{
blockSize = stat.getBlockSize();
totalBlocks = stat.getBlockCount();
availableBlocks = stat.getAvailableBlocks();
}
TextView tv = (TextView) findViewById(R.id.tv); //通過界面的一個TextView顯示
tv.setText("總共存儲空間大小:"+formatSize(availableBlocks * blockSize)+"可用存儲空間大小:"+formatSize(availableBlocks * blockSize));
}
//將B轉換爲MB,然後再轉換爲字符串
private String formatSize(long size) {
return Formatter.formatFileSize(this, size);
}
}