SDCard信息查询

运行效果图:

SDCard信息查询_第1张图片


布局文件修改activity_select_sd.xml:




    

 	

	 

	 

	 

 	


修改SelectSDActivity.java:




import java.io.File;

import com.bzu.test070listview.R.id;

import android.R.anim;
import android.os.Bundle;
import android.os.StatFs;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;

public class SelectSDActivity extends Activity {
	private TextView tv_TotalBlocks,tv_BlockSize,tv_AvailaBlocks,//block总数,每个block的size,可使用的block
					 tv_FreeBlocks,tv_SDTotalBlocks,tv_SDFreeSize;//剩余的block数量,SD总容量,SD剩余大小
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_select_sd);
		setTitle("SD卡信息");
		findById();//获取控件id
		setListener();//绑定事件
	}

	private void setListener() {
		String SDString=android.os.Environment.getExternalStorageState();//获得SDCard的状态
		//判断是否存在SD卡
		if(SDString.equals(android.os.Environment.MEDIA_MOUNTED)){
			File pathFile=android.os.Environment.getExternalStorageDirectory();//得到SD卡的文件路径
			android.os.StatFs statfs=new android.os.StatFs(pathFile.getPath());//得到SDCard的状态
			
		long nTotalBlocks=statfs.getBlockCount();//得到block总数
		tv_TotalBlocks.setText("SDCard中Block的总数:"+nTotalBlocks);
		
		long nBlockSize=statfs.getBlockSize();
		tv_BlockSize.setText("SDCard中每个block的size:"+nBlockSize);
		
		long nAvailaBlocks=statfs.getAvailableBlocks();
		tv_AvailaBlocks.setText("可供使用的block数量:"+nAvailaBlocks);
		
		tv_FreeBlocks.setText("余下的所有Block的数量:"+statfs.getFreeBlocks());
		
		tv_SDTotalBlocks.setText("SDCard的总容量:"+(nTotalBlocks*nBlockSize/1024/1024)+" MB");
		
		tv_SDFreeSize.setText("SDCard的剩余容量:"+(nAvailaBlocks*nBlockSize/1024/1024)+" MB");
		}
	}

	private void findById() {
		tv_TotalBlocks=(TextView) findViewById(R.id.tv_TotalBlocks);
		tv_BlockSize=(TextView) findViewById(R.id.tv_BlockSize);
		tv_AvailaBlocks=(TextView) findViewById(R.id.tv_AvailaBlocks);
		tv_FreeBlocks=(TextView) findViewById(R.id.tv_FreeBlocks);
		tv_SDTotalBlocks=(TextView) findViewById(R.id.tv_SDTotalBlocks);
		tv_SDFreeSize=(TextView) findViewById(R.id.tv_SDFreeSize);
	}


}
还有SD的一些其他信息,可以借助API开发文档

你可能感兴趣的:(Android)