獲取Android手機存儲相關信息

在進行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);
    }

}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章