java SD卡相关的工具类包括获取SD卡是否可用,剩余空间,总空间,剩余空间是否足够..当然你必须先申请访问SD卡的权限。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java SD卡相关的工具类包括获取SD卡是否可用,剩余空间,总空间,剩余空间是否足够..当然你必须先申请访问SD卡的权限。相关的知识,希望对你有一定的参考价值。

public class SDCardUtils {

    // ===========================================================
    // Constants
    // ===========================================================

    // ===========================================================
    // Fields
    // ===========================================================

    // ===========================================================
    // Override Methods
    // ===========================================================

    // ===========================================================
    // Define Methods
    // ===========================================================
    /**
     * 判断SDCard剩余空间是否充足
     *
     * @param pSize 剩余空间的最小值单位为MB, pSize 必须大于0,如果小于等于0默认取50MB
     * @return 返回结果
     */
    public static boolean isSDCardFreeSpaceEnough(float pSize) {
        long space = 0;
        if (pSize <= 0.0f) {
            space = 50 * 1024;
        } else {
            space = (long) (pSize * 1024);
        }

        long actual = getAvailableSpace();

        if (space > actual) {
            return false;
        } else {
            return true;
        }
    }

    //SD卡剩余空间大小
    public long getSDFreeSize(){
        //取得SD卡文件路径
        File path = Environment.getExternalStorageDirectory();
        StatFs sf = new StatFs(path.getPath());
        //获取单个数据块的大小(Byte)
        long blockSize = sf.getBlockSize();
        //空闲的数据块的数量
        long freeBlocks = sf.getAvailableBlocks();
        //返回SD卡空闲大小
        return (freeBlocks * blockSize)/1024 /1024; //单位MB
    }

    //SD卡总容量
    public long getSDAllSize(){
        //取得SD卡文件路径
        File path = Environment.getExternalStorageDirectory();
        StatFs sf = new StatFs(path.getPath());
        //获取单个数据块的大小(Byte)
        long blockSize = sf.getBlockSize();
        //获取所有数据块数
        long allBlocks = sf.getBlockCount();
        //返回SD卡大小
        //return allBlocks * blockSize; //单位Byte
        //return (allBlocks * blockSize)/1024; //单位KB
        return (allBlocks * blockSize)/1024/1024; //单位MB
    }
    /**
     * 判断存储卡是否可读
     *
     * @return
     */
    public static boolean isExternalStorageReadable() {
        final String state = Environment.getExternalStorageState();
        return state.equals(Environment.MEDIA_MOUNTED) || state.equals(Environment.MEDIA_MOUNTED_READ_ONLY);
    }
    // ===========================================================
    // Inner and Anonymous Classes
    // ===========================================================

    // ===========================================================
    // Getter & Setter
    // ===========================================================

}

以上是关于java SD卡相关的工具类包括获取SD卡是否可用,剩余空间,总空间,剩余空间是否足够..当然你必须先申请访问SD卡的权限。的主要内容,如果未能解决你的问题,请参考以下文章

java SD卡相关的辅助类

java SD卡相关的辅助类

java SD卡相关的辅助类

SD卡读写模块的操作命令

以编程方式检查 SD 卡是不是可用

Android设备网络屏幕尺寸SD卡本地IP存储空间等信息获取工具类