public class MemoryStatus {    static final int ERROR = -1;    /**     * 外部存储是否可用     * @return     */    static public boolean externalMemoryAvailable() {        return android.os.Environment.getExternalStorageState().equals(                android.os.Environment.MEDIA_MOUNTED);    }    /**     * 获取手机内部可用空间大小     * @return     */    static public long getAvailableInternalMemorySize() {        File path = Environment.getDataDirectory();        StatFs stat = new StatFs(path.getPath());        long blockSize = stat.getBlockSize();        long availableBlocks = stat.getAvailableBlocks();        return availableBlocks * blockSize;    }    /**     * 获取手机内部空间大小     * @return     */    static public long getTotalInternalMemorySize() {        File path = Environment.getDataDirectory();        StatFs stat = new StatFs(path.getPath());        long blockSize = stat.getBlockSize();        long totalBlocks = stat.getBlockCount();        return totalBlocks * blockSize;    }    /**     * 获取手机外部可用空间大小     * @return     */    static public long getAvailableExternalMemorySize() {        if (externalMemoryAvailable()) {            File path = Environment.getExternalStorageDirectory();            StatFs stat = new StatFs(path.getPath());            long blockSize = stat.getBlockSize();            long availableBlocks = stat.getAvailableBlocks();            return availableBlocks * blockSize;        } else {            return ERROR;        }    }    /**     * 获取手机外部空间大小     * @return     */    static public long getTotalExternalMemorySize() {        if (externalMemoryAvailable()) {            File path = Environment.getExternalStorageDirectory();            StatFs stat = new StatFs(path.getPath());            long blockSize = stat.getBlockSize();            long totalBlocks = stat.getBlockCount();            return totalBlocks * blockSize;        } else {            return ERROR;        }    }    static public String formatSize(long size) {        String suffix = null;        if (size >= 1024) {            suffix = "KiB";            size /= 1024;            if (size >= 1024) {                suffix = "MiB";                size /= 1024;            }        }        StringBuilder resultBuffer = new StringBuilder(Long.toString(size));        int commaOffset = resultBuffer.length() - 3;        while (commaOffset > 0) {            resultBuffer.insert(commaOffset, ',');            commaOffset -= 3;        }        if (suffix != null)            resultBuffer.append(suffix);        return resultBuffer.toString();    }}

 

 来源网络

 

 

更多相关文章

  1. 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
  2. android 与其他程序交互(一)
  3. Android(安卓)获取缩略图
  4. Android(安卓)MediaPlayer基本知识
  5. Android获取应用自身相关签名信息
  6. [置顶] android 捕捉异常
  7. Android(安卓)TextView自带padding 10dp问题
  8. android 根据TextView宽度 自动缩小字体大小 以适应其宽度
  9. android driver for ubuntu 手机驱动

随机推荐

  1. Android(安卓)查看蓝牙日志
  2. Android进程优先级部分整理与理解
  3. 重学 Android(安卓)面试题
  4. 黑马Android全套视频无加密完整版
  5. Android(安卓)ImageView设置图片原理
  6. 通过Android(安卓)Studio 导出Jar包
  7. Android(安卓)事件分发机制(最新源码6.0
  8. 『原』在Linux下反编译Android(安卓).apk
  9. Android实现自动匹配关键字并且标红功能
  10. Android欢迎页面闪屏解决方法