Android 存储:SD卡剩余空间的检测

SD卡剩余空间的检测

  通过对Android源代码的查看可以获得Android中settings中内存剩余空间的获得方法,参考该方法进行SD卡剩余存储空间的获得。
  所有的存储设备的存储空间都被分成若干相同大小的存储区域,也就出现了blocksize 、 blockcount等

package com.example.externalsurplus;

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 {

    private long blocksize;
    private long totalblock;
    private long availbleblocks;
    private StatFs stat;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        File path=Environment.getExternalStorageDirectory();
        stat = new StatFs(path.toString());
     //此处进行版本的判断因为在2.3版本中 getBlockSize()等方法还适用
    //之后的有些版本有了新的方法进行替代。 if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.JELLY_BEAN_MR1){
             blocksize = stat.getBlockSizeLong();
             totalblock = stat.getBlockCountLong();
             availbleblocks = stat.getAvailableBlocksLong();
        }else{
        blocksize = stat.getBlockSize();
        totalblock = stat.getBlockCount();
        availbleblocks = stat.getAvailableBlocks();
        }
        TextView tv=(TextView) findViewById(R.id.tv);
        tv.setText(formatsize(availbleblocks*blocksize));
    }
    private String formatsize(long size){
        return Formatter.formatFileSize(this, size);
    }   
}

Android 存储:SD卡剩余空间的检测_第1张图片
Android 存储:SD卡剩余空间的检测_第2张图片
学习:
通过关键字在文件中查找相关项:可以通过filesearch来查找。
eclipse中的下图图标。
这里写图片描述

你可能感兴趣的:(Android 存储:SD卡剩余空间的检测)