当前位置:首页 > Android

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

jsc10年前 (2016-04-05)Android3485

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

android ViewPager滑动事件 onPageChangeListener总结

android ViewPager滑动事件 onPageChangeListener总结

首先ViewPager在处理滑动事件的时候要用到OnPageChangeListener OnPageChangeListener这个接口需要实现三个方法:(onPageScrollStateChanged,onPageScrolled ,onPageSelected) onPageScrollSt…

【代码】android 调用系统视频录制并生成缩略图

package com.example.videocapture; import android.app.Activity; import android.content.Intent; import android.database.Cursor;…

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

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

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

android客户端和java服务端之间用socket来传输图片

一、从服务端向客户端发送图片:服务端的代码:import java.io.DataOutputStream;   import java.io.FileInputStream;   import java.io.IOExcep…

android 定时循环执行任务

一、执行循环的函数如下:private Handler handler = new Handler();         priv…

Android利用JSON发送数据到服务器

new Thread() { @Override public void run() { // TODO Auto-generated method stub Looper.prepare();&nbs…