android 获取SD、ROM容量

本文介绍了一种通过创建StatFs对象来获取Android设备中SD卡及ROM的总容量、可用容量和已用容量的方法,并展示了如何将这些容量转换为易于理解的格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SD卡及ROM容量获取,先获取SDROM的路径,再根据该路径创建StatFs对象,利用其中方法即可获取容量及其他信息。

//SD容量显示    

    private void show_SD_storage()

    {

        // 先判断有无SD

        if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))

        {

            String path=Environment.getExternalStorageDirectory().getPath();

            StatFs statFs=new StatFs(path);

            long blockSize=statFs.getBlockSize();

            long totalBlocks=statFs.getBlockCount();

            long availableBlocks=statFs.getAvailableBlocks();

            long usedBlocks=totalBlocks-availableBlocks;

           

            //处理存储容量格式

            String[] total=fileSize(totalBlocks*blockSize);

            String[] available=fileSize(availableBlocks*blockSize);

            String[] used=fileSize(usedBlocks*blockSize);

           

            int ss=Integer.parseInt(used[0]);

            int mm=Integer.parseInt(total[0]);

            int tt=ss*100/mm;

            mProgressBar_SD_storage.setProgress(tt);

           

            mTextView_SD_storage.setText(available[0]+available[1]);

           

        }

       

    }

 

 //ROM容量显示

    private void show_ROM_storage()

    {

        String path=Environment.getDataDirectory().getPath();

        StatFs statFs=new StatFs(path);

        long blockSize=statFs.getBlockSize();

        long totalBlocks=statFs.getBlockCount();

        long availableBlocks=statFs.getAvailableBlocks();

        long usedBlocks=totalBlocks-availableBlocks;

       

        //处理存储容量格式

        String[] total=fileSize(totalBlocks*blockSize);

        String[] available=fileSize(availableBlocks*blockSize);

        String[] used=fileSize(usedBlocks*blockSize);

       

        int ss=Integer.parseInt(used[0]);

        int mm=Integer.parseInt(total[0]);

        int tt=ss*100/mm;

        mProgressBar_ROM_storage.setProgress(tt);

       

        mTextView_ROM_storage.setText(available[0]+available[1]);

           

       

       

    }

 

 //处理存储容量格式

   

    private String[] fileSize(long size)

    {

        String str="";

        if(size>=1024)

        {

            str="KB";

            size/=1024;

            if(size>=1024)

            {

                str="MB";

                size/=1024;

                if(size>=1024)

                {

                    str="GB";

                    size/=1024;

                }

            }

           

        }

        DecimalFormat formatter=new DecimalFormat();

        formatter.setGroupingSize(3);

        String[] result=new String[2];

        result[0]=formatter.format(size);

        result[1]=str;

       

        return result;

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值