Android基础--获取SD卡可用容量

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 {

    @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;
         
         
         //检测系统当前版本号
         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);
         tv.setText(formatSize(availableBlocks * blockSize));

    }

     private String formatSize(long size) {
            return Formatter.formatFileSize(this, size);
       }

}

posted on 2014-11-16 22:37  fujianyi  阅读(166)  评论(0编辑  收藏  举报