package com.example.getMem;

import java.io.File;

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; public class MainActivity extends Activity {     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();
            
         }
        
                 
        // 磁盘总大小
        String totalMemory =Formatter.formatFileSize(this, blockSize*totalBlockCount);
        // 可用大小
        String availabelMemory=Formatter.formatFileSize(this, blockSize*avaiLabelCount);
        
        return totalMemory+"##"+availabelMemory;
    }     
     }

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. 本周PSP+历年作品评论

    本周PSP 类别 内容 开始时间 结束时间 间断时间 净时间(min) 9月11号 看书 构建之法 19:00 21:00 14 106 9月12号 写程序 词频统计多需求版 8:00 14:23 3 ...

  2. Mysql子查询、关联查询

    mysql中update.delete.install尽量不要使用子查询 一.mysql查询的五种子句         where(条件查询).having(筛选).group by(分组).orde ...

  3. 第三方过滤器在TVideoGrabber中的使用

    在TVideoGrabber中可以使用第三方过滤器,并可插入到预览.录制或回放流中,添加到列表里. 要在一个图像中中应用一个过滤器,需要像下面的例子中一样调用 ThirdPartyFilter_Add ...

  4. 利用Qt Assistant 定制帮助文档

    为了将Qt Assistant定制为自己应用程序的帮助文档浏览器.需要完成以下几步: 一.导入HTML格式的帮助文档 (1)首先,针对自己的应用程序创建HTML格式的帮助文档,请参见<Doxyg ...

  5. 统计SQL语句耗时百分比

    -- sql语句耗时百分比 declare @tmptb table(id int,name varchar(50),total_worker_time bigint,rate varchar(50) ...

  6. linux设备驱动归纳总结(三):3.设备驱动面向对象思想和lseek的实现【转】

    本文转自自:http://blog.chinaunix.net/uid-25014876-id-59418.html linux设备驱动归纳总结(三):3.设备驱动面向对象思想和lseek的实现 一. ...

  7. 5.24 Declaring Attributes of Functions【转】

    转自:https://gcc.gnu.org/onlinedocs/gcc-4.0.0/gcc/Function-Attributes.html 5.24 Declaring Attributes o ...

  8. page指令

    <%@ page 属性1=“value” 属性2=“value2” ......%> page的属性有13种: 1)language  --- 声明所使用的脚本语言的种类.(可省略) va ...

  9. n阶乘 尾数0的个数

    class Solution {public: int trailingZeroes(int n) {            if(n<=0) return 0; int i=0;        ...

  10. Dynamics AX 2012 R2 Business Connector Error

    6.0: AxCryptoClient - New encryption key created 6.0: Unable to InitializeSession. 6.0: No built-in ...