android_09_sd卡可用空间大小

来源:互联网 发布:商业银行存贷比数据 编辑:程序博客网 时间:2024/06/05 20:54

效果:







代码:


package com.xsism.sdcardavailablesize;import java.io.File;import android.support.v7.app.ActionBarActivity;import android.text.format.Formatter;import android.os.Build;import android.os.Bundle;import android.os.Environment;import android.os.StatFs;import android.view.Menu;import android.view.MenuItem;import android.widget.TextView;public class MainActivity extends ActionBarActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                getAvailabilitySize();    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        // Handle action bar item clicks here. The action bar will        // automatically handle clicks on the Home/Up button, so long        // as you specify a parent activity in AndroidManifest.xml.        int id = item.getItemId();        if (id == R.id.action_settings) {            return true;        }        return super.onOptionsItemSelected(item);    }    // 获取系统可用的sd大小    public void getAvailabilitySize(){    File path = Environment.getExternalStorageDirectory();        StatFs stat = new StatFs(path.getPath());        long blockSize;        long totalBlocks;        long availableBlocks;                //获取当前系统版本的等级 18        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);    }}









1 0