1. package com.example.getMem;
  2.  
  3. import java.io.File;
  4.  
  5. import android.os.Build;
    import android.os.Bundle;
    import android.os.Environment;
    import android.os.StatFs;
    import android.text.format.Formatter;
    import android.widget.TextView;
    import android.app.Activity;
    import android.app.AlertDialog.Builder;
  6.  
  7. public class MainActivity extends Activity {
  8.  
  9.     private TextView tv_totalSize;
        private TextView tv_availabelSize;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            tv_totalSize=(TextView) findViewById(R.id.totalSize);
            tv_availabelSize=(TextView) findViewById(R.id.availabel);
            
            // 获取存储空间
            File dataFileDir=Environment.getDataDirectory();
            String data =getMemoryInfo(dataFileDir);
            String []d= data.split("##");
            
            tv_totalSize.setText("内部存储总大小:" + d[0]);
            tv_availabelSize.setText("内部存储可用空间是:" + d[1]);
            
            //获取Sd 卡空间
            
    //        File SdFileDir=Environment.getExternalStorageDirectory();
    //        //判断Sd卡是否可用
    //        if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
    //            String sdMemory =getMemoryInfo(SdFileDir);
    //            String []sd=sdMemory.split("##");
    //            tv_totalSize.setText("内部存储总大小:" + sd[0]);
    //            tv_availabelSize.setText("内部存储可用空间是:" + sd[1]);
    //            
    //        }
            
        }
        private String getMemoryInfo(File path) {
            long blockSize;
            long totalBlockCount;
            long avaiLabelCount;
            // TODO Auto-generated method stub
            StatFs stat = new StatFs(path.getPath());
            
            //检测系统版本
            if(Build.VERSION.SDK_INT >=Build.VERSION_CODES.JELLY_BEAN_MR2){
            
            //获取每个扇区的大小
             blockSize = stat.getBlockSizeLong();        
            
            //获取总共有多少扇区
             totalBlockCount=stat.getBlockCountLong();
            
            //获取可用扇区数量
             avaiLabelCount=stat.getAvailableBlocksLong();
             }else{
                 blockSize=stat.getBlockSize();
                 totalBlockCount=stat.getBlockCount();
                 avaiLabelCount=stat.getAvailableBlocks();
                
             }
            
            
  10.  
  11.         
            // 磁盘总大小
            String totalMemory =Formatter.formatFileSize(this, blockSize*totalBlockCount);
            // 可用大小
            String availabelMemory=Formatter.formatFileSize(this, blockSize*avaiLabelCount);
            
            return totalMemory+"##"+availabelMemory;
        }
  12.  
  13.     
        
  14.  
  15. }
  16.  

http://pan.baidu.com/s/1bp0V87d

Android 获取存储空间的更多相关文章

  1. android 获取sd卡根目录

    dir:/storage/emulated/0 也就是 sdcard目录 ====== android 获取sd卡根目录 public String getSDPath(){        File ...

  2. Android获取SD卡路径及SDCard内存的方法

    这篇文章主要介绍了Android获取SD卡路径及SDCard内存的方法,较为详细的分析了Android针对SD卡操作所涉及的类及其具体函数功能,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了A ...

  3. Android获取内置sdcard跟外置sdcard路径

    Android获取内置sdcard跟外置sdcard路径.(测试过两个手机,亲测可用) 1.先得到外置sdcard路径,这个接口是系统提供的标准接口. 2.得到上一级文件夹目录 3.得到该目录的所有文 ...

  4. Android获取系统时间方法的总结

    Android获取系统时间方法的方法有很多种,常用的有Calendar.Date.currentTimeMills等方法. (1)Calendar Calendar获取系统时间首先要用Calendar ...

  5. Android获取屏幕宽和高

    android获取屏幕的高度和宽度用到WindowManager这个类,两种方法:   1.WindowManager wm = (WindowManager) getContext()        ...

  6. android 获取文件夹、文件的大小 以B、KB、MB、GB 为单位

    android 获取文件夹.文件的大小 以B.KB.MB.GB 为单位   public class FileSizeUtil { public static final int SIZETYPE_B ...

  7. Android获取APK包名的几种方法

    Android获取APK包名的几种方法:1.adb shell pm list package -f | findstr 关键字 #只能获取到包名,主Activity名无法获取到 2.使用aapt-- ...

  8. I.MX6 android 获取framebuffer信息

    /******************************************************************************** * I.MX6 android 获取 ...

  9. android 获取IMEI号

    android 获取 imei号码 核心代码: Imei = ((TelephonyManager) getSystemService(TELEPHONY_SERVICE)).getDeviceId( ...

随机推荐

  1. Script to compile invalid objects in DB

    REM: Script to compile invalid objects in DB after refreshing REM: REM:***************************** ...

  2. COM编程之五 动静态链接

    [1]静态链接 静态链接是指由链接器在链接时将库的内容加入到可执行程序中的做法. 链接器是一个独立程序,将一个或多个库或目标文件(先前由编译器或汇编器生成)链接到一块生成可执行程序. 函数和数据被编译 ...

  3. php版redis插件,SSDB数据库,增强型的Redis管理api实例

    php版redis插件,SSDB数据库,增强型的Redis管理api实例 SSDB是一套基于LevelDB存储引擎的非关系型数据库(NOSQL),可用于取代Redis,更适合海量数据的存储.另外,ro ...

  4. mysql中时间类型datetime,timestamp与int的区别

    在mysql中存储时间,我们可以用datetime 格式,timestamp格式,也可以用int格式.那么我们设计的时候该如何考虑呢? 首先,我觉得应该明白这几个格式究竟是如何的,然后看看他们的区别, ...

  5. 浅析String、StringBuffer、StringBuilder的区别以及性能区别

    前奏: 比较三者之间的区别在与区别他们做相同的事情的时候的区别,那就是在我们常见的拼接字符串的时候,StringBuffer.StringBuilder调用的是appende()方法,而String很 ...

  6. jmeter使用笔记

    接口测试 http协议 接口分成两类,一类是查询功能的接口,一类是保存数据功能的接口. 保存逻辑:数据传入进来,验证通过.保存到数据表中 使用jmeter接口测试的步骤 1.首先添加线程组. 2.配置 ...

  7. 【JQGRID DOCUMENTATION】.学习笔记.4.Navigator

    Navigator是一个将查找或编辑记录的动作,变得非常容易达到用户交互特性.开发者可以创建自定义动作,也可以使用六个预定义的动作.jqGrid为预定义的动作提供icon button图形. 一组完整 ...

  8. iOS 证书申请和使用详解(详细版)

    对于iOS开发者来说,apple开发者账号肯定不会陌生.在开发中我们离不开它.下面我简单的为大家分享一下关于iOS开发中所用的证书相关知识. 第一部分:成员介绍 1.Certification(证书) ...

  9. Nagios监控磁盘

    1.查看check_disk脚本 [oracle@rhel5 ~]$ /usr/local/nagios/libexec/check_disk --h check_disk v1.) Copyrigh ...

  10. QQ空间开放平台开发教程-SDK和API的使用

    <?php /** * OpenAPI V3 SDK 示例代码,适用于大部分OpenAPI.如果是上传文件类OpenAPI,请参考本SDK包中的“Test_UploadFile.php”文件中的 ...