SD卡作为手机的扩展存储设备,在手机中充当硬盘角色,可以让我们手机存放更多的数据以及多媒体等大体积文件。因此查看SD卡的内存就跟我们查看硬盘的剩余空间一样,是我们经常操作的一件事,那么在Android开发中,我们如何能获取SD卡的内存容量呢?
首先,要获取SD卡上面的信息,必须先对SD卡有访问的权限,因此第一件事就是需要添加访问扩展设备的权限。
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE">
</uses-permission>
其次,需要判断手机上面SD卡是否插好,如果有SD卡的情况下,我们才可以访问得到并获取到它的相关信息,当然以下这个语句需要用if做判断。
Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)
取得sdcard文件路径
File path = Environment.getExternalStorageDirectory();
StatFs statfs = new StatFs(path.getPath());
获取block的SIZE
long blocSize = statfs.getBlockSize();
获取BLOCK数量
long totalBlocks = statfs.getBlockCount();
空闲的Block的数量
long availaBlock = statfs.getAvailableBlocks();
计算总空间大小和空闲的空间大小
储空间大小跟空闲的存储空间大小就被计算出来了。
/**
* 取得空闲sd卡空间大小
* @return
*/
public long getAvailaleSize(){
File path = Environment.getExternalStorageDirectory(); //取得sdcard文件路径
StatFs stat = new StatFs(path.getPath());
/*获取block的SIZE*/
long blockSize = stat.getBlockSize();
/*空闲的Block的数量*/
long availableBlocks = stat.getAvailableBlocks();
/* 返回bit大小值*/
return availableBlocks * blockSize/1024/1024;
//(availableBlocks * blockSize)/1024 KIB 单位
//(availableBlocks * blockSize)/1024 /1024 MIB单位
}
/**
* SD卡大小
* @return
*/
public long getAllSize(){
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
/*获取block的SIZE*/
long blockSize = stat.getBlockSize();
/*块数量*/
long availableBlocks = stat.getBlockCount();
/* 返回bit大小值*/
return availableBlocks * blockSize/1024/1024;
}
分享到:
相关推荐
Android开发之系统信息【1】——获取Android手机中SD卡存储信息Android开发之系统信息【1】——获取Android手机中SD卡存储信息
安卓Android源码——精典源码之开发之SD卡的使用.zip
安卓Android源码——开发之SD卡的使用.zip
安卓Android源码——开发之 SD卡的使用.zip
6.3.2 SD卡数据文件 6.4 SQLite数据库 6.4.1 SQLite基本操作 6.4.2 SQLiteOpenHelper 6.5 Content Provider 6.5.1 使用Content Provider发布数据 6.5.2 使用Content Resolver获取数据 6.6 小结 练习 ...
安卓Android源码——拍照,完美尺寸保存SD卡.zip
安卓Android源码——拍照,完美尺寸保存SD卡.rar
安卓Android源码——Gallery从SD卡中获取图片,并显示.zip
安卓Android源码——Gallery从SD卡中获取图片,并显示.rar
安卓Android源码——开发 SD卡的使用.zip
6.9 访问本机内存与存储卡——File的创建与删除 6.10 实现可定时响起的闹钟——PendingIntent与AlarmManager的运用 6.11 黑名单来电自动静音——PhoneStateListener与AudioManager 6.12 手机翻背面即静音震动——...
6.9 访问本机内存与存储卡——File的创建与删除 6.10 实现可定时响起的闹钟——PendingIntent与AlarmManager的运用 6.11 黑名单来电自动静音——PhoneStateListener与AudioManager 6.12 手机翻背面即静音震动——...
2.3 创建第一个Android项目——HeUoAndroid 2.3.1 创建HelloAndroid项目 2.3.2 运行HelloAndroid及模拟器的使用 2.3.3 调试HelloAndroid 2.4 小结 第二部分 基础篇 第3章 Android程序设计基础 3.1 Android程序框架 ...
6.9 访问本机内存与存储卡——File的创建与删除 6.10 实现可定时响起的闹钟——PendingIntent与AlarmManager的运用 6.11 黑名单来电自动静音——PhoneStateListener与AudioManager 6.12 手机翻背面即静音震动——...
实现基于文件存储的日程安排应用,数据文件可以保存在机身内存或者SD卡中。通过单击增加图标打开新增加活动界面,通过单击保存按钮将活动内容写入到文件中,并返回前页,点击删除图标,可以删除该活动。
安卓Android源码——数据库文件写入SD卡.zip
6.9 访问本机内存与存储卡——File的创建与删除 6.10 实现可定时响起的闹钟——PendingIntent与AlarmManager的运用 6.11 黑名单来电自动静音——PhoneStateListener与AudioManager 6.12 手机翻背面即静音震动——...