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;

}

转载于:https://www.cnblogs.com/xyzlmn/archive/2011/05/06/3168183.html

Android开发之系统信息——获取Android手机中SD卡内存信息相关推荐

  1. /mnt/sdcard或者/sdcard这是Android手机中SD卡的文件夹路径

    Android系统的开放,使其用户可以自己查看系统和SD卡中的文件夹.就系统和SD卡中常见的目录代表什么意思,下面是一个较实用的总结: 一.SD卡中 1. /mnt/sdcard或者/sdcard这是 ...

  2. Android获取Linux图像信息,Android系统信息获取 之十三:Linux内核版本信息获取

    Android系统信息获取 之十三:Linux内核版本信息获取 Android系统是基于Linux的,各个Android版本对应的Linux版本不尽相同,我们这里不去追究各个Android对应的Lin ...

  3. Android 开发 Activity里获取View的宽度和高度 转载

    Android 开发 Activity里获取View的宽度和高度 转载 原文地址:https://blog.csdn.net/chenbaige/article/details/77991594 前言 ...

  4. Android利用Java反射获取用户手机的rom定制系统及版本,EMUI,MIUI,ColorOS,FunthouchOS等

    Android利用Java反射获取用户手机的rom定制系统版本及版本号,EMUI,MIUI,ColorOS,FunthouchOS等 前言 正文 结语 前言 现在手机厂商都推出了自己的基于Androi ...

  5. 《Android开发艺术探索》自定义View中关于“HorizontalScrollViewEx”的改进

    在<Android开发艺术探索>一书中自定义View一节中提到了关于一个类似横向滑动List的自定义ViewGroup:HorizontalScrollViewEx.如果你使用过的话就会发 ...

  6. android studio开发工具介绍,Android应用开发之Android开发工具介绍、Android Studio配置...

    本文将带你了解Android应用开发之Android开发工具介绍.Android Studio配置,希望本文对大家学Android有所帮助. 2.1   Android Studio配置 2.1.1 ...

  7. android复制短信到sim,Android开发之关于复制短信到SIM卡的分析.docx

    Android开发之关于复制短信到SIM卡的分析 Android开发之关于复制短信到SIM卡的分析 在framework层下的SmsManager类中,封装好了一个copyMessageToIcc方法 ...

  8. Android开发介绍(基于Android Studio软件)

    Android开发介绍(基于Android Studio软件) 关于Android开发,笔者走过一些弯路,因此今天总计了有关Android开发的一些内容和心得,希望对大家有所帮助.首先来一张安卓开发者 ...

  9. htc android sd卡,【HTC T328W】Android系统中SD卡各文件夹功能详解

    希望你的补充说明,让我们一起来清理内存卡吧注意,软件没有卸载前,不建议删除其文件荚!1..android_secure       是官方app2sd的产物,删了之后装到sd卡中的软件就无法使用了,小 ...

最新文章

  1. DroidPilot V2.1 手写功能特别版
  2. xftp连接海康摄像头报错:sftp子系统申请已拒绝 请确保ssh连接的sftp子系统设置有效
  3. 程序中抛出空指针异常_从Java应用程序中消除空指针异常
  4. 浅析Linux开发工具之Makefile
  5. 【SpringMVC框架】springmvc的基础知识
  6. 【kafka】Kafka ConsumerOffsetChecker 命令失效问题解决 卡死
  7. 系统管理-第2部分 范围,方法和元素
  8. idea 配置springmvc+mybatis(图文教程)
  9. springmvc 配置aop
  10. iOS开发之控制器之间传值
  11. ZOJ3067_Nim
  12. Oracle 9.2.0.4的一个简单安装脚本(含安装前补丁p3006854)
  13. Apache Commons Net 实现 FTP 上传/下载/删除/同步
  14. vue源码分析系列之响应式数据(三)
  15. 自学啊哈C的推箱子的编程代码
  16. c语言读取文件属性,Java File类(文件操作类)详解
  17. 详解线上线下收单业务(2)
  18. JDK8中Lambda 表达式语法糖脱糖[非原创]
  19. 使用Vue+Element-UI从0搭建一个常见的前端模板
  20. Echarts 雷达简单应用

热门文章

  1. redis 配置允许其他主机可以远程连接redis
  2. Spring security+jwt服务鉴权完整代码
  3. 如何快速解决虚拟机中的CentOS7无法上网的方式
  4. Coding:就地合并两个排序数组
  5. java读取excel2010文件_java如何读写excel2010
  6. vmlite linux版本,vmlite 安装 xp mode及xp、win7、linux的虚拟磁盘到d盘的方法
  7. 超级签名源码_苹果iOS超级签名源码技术解析
  8. 什么是 DDos 攻击
  9. 空间句法软件_【特训营2:空间句法高阶班】GIS中的空间句法运用 丨城市数据派...
  10. Linux中的ftp命令怎么写,linux下使用ftp命令