当前位置:首页 > Android

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

jsc10年前 (2016-04-05)Android3505

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卡存储信息” 的相关文章

TypedArray和obtainStyledAttributes使用

TypedArray和obtainStyledAttributes使用

在编写Android自定义按钮示例基础上,如果要指定字体大小产生这样的效果: 其实是不需要自定义变量的,可以直接使用......…

Android中Parcelable接口用法

1. Parcelable接口Interface for classes whose instances can be written to and restored from a Parcel。 Classes implementing the Parcelabl…

ViewPager + HorizontalScrollView 实现可滚动的标签栏

ViewPager + HorizontalScrollView 实现可滚动的标签栏

这是一个可滑动的标签栏的自定义控件,参考此文章http://blog.csdn.net/fx_sky/article/details/8990573,我将主要的功能整合成一个类,配上2个特定的布局即可使用。 效果图:    主要布局文件:<?xml&nb…

Android采用SharedPreferences保存用户登录信息

Android平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用 SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/<package name>/shared_…

Android中从SD卡中/拍照选择图片并进行剪裁的方法

Android中从SD卡中/拍照选择图片并进行剪裁的方法

效果图: ˂img src="http://photo.j…

android上传图片至服务器

本实例实现了android上传手机图片至服务器,服务器进行保存服务器servlet代码publicvoid doPost(HttpServletRequest request, HttpServletResponse response)&…