Android 存储: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);
}
}
学习:
通过关键字在文件中查找相关项:可以通过filesearch来查找。
eclipse中的下图图标。
版权声明
本文仅代表作者观点,不代表博信信息网立场。