SDCard信息查询

运行效果图:



布局文件修改activity_select_sd.xml:


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".SelectSDActivity" >
<!-- 显示block的数量的标签控件 -->
    <TextView
        android:id="@+id/tv_TotalBlocks"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
<!-- 显示block的大小的标签控件  -->
 	<TextView
        android:id="@+id/tv_BlockSize"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
<!-- 显示可用Block的标签控件 -->
	 <TextView
        android:id="@+id/tv_AvailaBlocks"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
<!-- 显示空的block -->
	 <TextView
        android:id="@+id/tv_FreeBlocks"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
<!--  显示SDCard的总大小  -->
	 <TextView
        android:id="@+id/tv_SDTotalBlocks"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
<!-- 显示SDCard的剩余大小 -->
 	<TextView
        android:id="@+id/tv_SDFreeSize"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
</LinearLayout>

修改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开发文档

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

饕餮幻想家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值