博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
判断SD是否存在及其容量查询
阅读量:4257 次
发布时间:2019-05-26

本文共 2522 字,大约阅读时间需要 8 分钟。

随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)、QQ技术交流群(183198395)。

这个非常简单,直接上代码:

MainActivity:

package com.home.getsdinfo;import java.io.File;import android.app.Activity;import android.os.Bundle;import android.os.Environment;import android.os.StatFs;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity implements OnClickListener {	private Button getAllBtn;	private Button getRemainBtn;	private TextView allText;	private TextView remainText;	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.main);		initWidget();	}	private void initWidget() {		getAllBtn = (Button) findViewById(R.id.main_btn_all);		getAllBtn.setOnClickListener(this);		getRemainBtn = (Button) findViewById(R.id.main_btn_remain);		getRemainBtn.setOnClickListener(this);		allText = (TextView) findViewById(R.id.main_tv_all);		remainText = (TextView) findViewById(R.id.main_tv_remain);	}	@Override	public void onClick(View v) {		if (v == getAllBtn) {			if (!isExistSDCard()) {				Toast.makeText(this, "SD卡不存在!", Toast.LENGTH_SHORT).show();				return;			}			allText.setText(getSDAllSize() + "MB");		} else if (v == getRemainBtn) {			if (!isExistSDCard()) {				Toast.makeText(this, "SD卡不存在!", Toast.LENGTH_SHORT).show();				return;			}			remainText.setText(getSDRemainSize() + "MB");		}	}	/**	 * 判断SD卡是否存在	 * 	 * @return	 */	private boolean isExistSDCard() {		if (Environment.getExternalStorageState().equals(				Environment.MEDIA_MOUNTED)) {			return true;		}		return false;	}	/**	 * 获取SD卡剩余空间	 * 	 * @return	 */	private long getSDRemainSize() {		// 获取SD卡根目录文件		File file = Environment.getExternalStorageDirectory();		// 构建StatFs对象		StatFs sfs = new StatFs(file.getPath());		// 获取单个数据块的大小(Byte)		long blockSize = sfs.getBlockSize();		// 获取空闲的数据块的数量		long freeBlocks = sfs.getAvailableBlocks();		// 返回SD卡空闲大小		return (freeBlocks * blockSize) / 1024 / 1024; // 单位MB	}	/**	 * 获取SD卡总容量	 * 	 * @return	 */	private long getSDAllSize() {		// 获取SD卡根目录文件		File file = Environment.getExternalStorageDirectory();		// 构建StatFs对象		StatFs sfs = new StatFs(file.getPath());		// 获取单个数据块的大小(Byte)		long blockSize = sfs.getBlockSize();		// 获取所有数据块数		long allBlocks = sfs.getBlockCount();		// 返回SD卡大小		return (allBlocks * blockSize) / 1024 / 1024; // 单位MB	}}

布局:

权限:

 

转载地址:http://ibvei.baihongyu.com/

你可能感兴趣的文章
兼容ProgressBar圆形设置颜色
查看>>
git detached HEAD 修改后如何提交修改到其他分支
查看>>
Android获取系统中的其他应用信息
查看>>
Android视频编解码之MediaCodec简单入门
查看>>
Android原始视频格式YUV,NV12,NV21,YV12,YU12(I420)
查看>>
View绘制01-Android渲染系统中的View
查看>>
View绘制02-View生命周期
查看>>
View绘制系列(3)-自定义View简介
查看>>
View绘制系列(5)-Canvas基础图形绘制
查看>>
Android横竖屏切换
查看>>
判断SD是否存在及其容量查询
查看>>
linux查看文本的5+1种方式
查看>>
Linux 查看服务器开放的端口号
查看>>
端口状态说明 LISTENING、ESTABLISHED、TIME_WAIT及CLOSE_WAIT
查看>>
阿里云---阿里云服务器ECS开放8080端口
查看>>
Linux如何查看端口状态
查看>>
3种关闭linux系统端口方法
查看>>
pm2常用的命令用法介绍
查看>>
http状态码301和302详解及区别——辛酸的探索之路
查看>>
强大的原生DOM选择器querySelector和querySelectorAll
查看>>