Android 獲取存儲空間


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM