当前位置:首页 > Android

获取Android手机中SD卡存储信息

jsc10年前 (2016-04-05)Android3525

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;
     //(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;
 }

扫描二维码推送至手机访问。

版权声明:本文由微小站发布,如需转载请注明出处。

本文链接:https://jsc0.com/post/64.html

标签: SD
分享给朋友:

“获取Android手机中SD卡存储信息” 的相关文章

java.util.Properties类

java.util.Properties类

一、认识properties文件 1、properties文件是一个文本文件2、properties文件的语法有两种,一种是注释,一种属性配置。 注    释:前面加上#号 属性配置:以“键=值”的方式书写一个属性的配置信息。3、prope…

Android ImageView的scaleType属性与adjustViewBounds属性

Android ImageView的scaleType属性与adjustViewBounds属性

ImageView的scaleType的属性有好几种,分别是matrix(默认)、center、centerCrop、centerInside、fitCenter、fitEnd、fitStart、fitXY android:scaleType…

Android应用加入微信分享

Android应用加入微信分享

一、申请你的AppIDhttp://open.weixin.qq.com/  友情提示:推荐使用eclipse打包软件最后一步的MD5值去申请AppID二、官网下载libammsdk.jar包http://open.weixin.qq.com/download/?lang=zh_…

Android 学习之 开源项目PullToRefresh的使用

Android 学习之 开源项目PullToRefresh的使用

首先 下载 Android-PullToRefresh-master ˂img src="http://photo.jsc…

Android中的消息通知(NotificationManager和Notification)

下面来谈谈notification,这个notification一般用在电话,短信,邮件,闹钟铃声,在手机的状态栏上就会出现一个小图标,提 示用户处理这个通知,这时手从上方滑动状态栏就可以展开并处理这个快讯。已添加的Notification.Builder,使其更容易构建通知。 notifica…

onTextChanged参数解释及实现EditText字数监听

由于最近做项目要检测EditText中输入的字数长度,从而接触到了Android中EditText的监听接口,TextWatcher。它有三个成员方法,第一个after很简单,这个方法就是在EditText内容已经改变之后调用,重点看下面两个方法:beforeTextChanged(CharSequ…