您的位置:首页 > 移动开发 > Android开发

Android获取SD卡总容量,可用大小,机身内存总容量及可用大小的系统方法

2016-05-23 17:10 483 查看
[java] view
plain copy

 





/** 

     * 获得SD卡总大小 

     *  

     * @return 

     */  

    private String getSDTotalSize() {  

        File path = Environment.getExternalStorageDirectory();  

        StatFs stat = new StatFs(path.getPath());  

        long blockSize = stat.getBlockSize();  

        long totalBlocks = stat.getBlockCount();  

        return Formatter.formatFileSize(MainActivity.this, blockSize * totalBlocks);  

    }  

  

    /** 

     * 获得sd卡剩余容量,即可用大小 

     *  

     * @return 

     */  

    private String getSDAvailableSize() {  

        File path = Environment.getExternalStorageDirectory();  

        StatFs stat = new StatFs(path.getPath());  

        long blockSize = stat.getBlockSize();  

        long availableBlocks = stat.getAvailableBlocks();  

        return Formatter.formatFileSize(MainActivity.this, blockSize * availableBlocks);  

    }  

  

    /** 

     * 获得机身内存总大小 

     *  

     * @return 

     */  

    private String getRomTotalSize() {  

        File path = Environment.getDataDirectory();  

        StatFs stat = new StatFs(path.getPath());  

        long blockSize = stat.getBlockSize();  

        long totalBlocks = stat.getBlockCount();  

        return Formatter.formatFileSize(MainActivity.this, blockSize * totalBlocks);  

    }  

  

    /** 

     * 获得机身可用内存 

     *  

     * @return 

     */  

    private String getRomAvailableSize() {  

        File path = Environment.getDataDirectory();  

        StatFs stat = new StatFs(path.getPath());  

        long blockSize = stat.getBlockSize();  

        long availableBlocks = stat.getAvailableBlocks();  

        return Formatter.formatFileSize(MainActivity.this, blockSize * availableBlocks);  

    }  

/**

* 外部存储是否可用 (存在且具有读写权限)

* @return

*/ 

staticpublicboolean isExternalStorageAvailable()


    return Environment.getExternalStorageState().equals( 

            Environment.MEDIA_MOUNTED); 



在AndroidManifest.xml中加入访问SDCard的权限如下:

<!-- 在SDCard中创建与删除文件权限 -->

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

<!-- 往SDCard写入数据权限 -->

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

 

接着我们在使用SDcard进行读写的时候 会用到Environment类下面的几个静态方法:

1:getDataDirectory()         获取到Android中的data数据目录

2:getDownloadCacheDirectory()
获取到下载的缓存目录

3:getExternalStorageDirectory()    
获取到外部存储的目录 一般指SDcard

4:getExternalStorageState()          
获取外部设置的当前状态 一般指SDcard,

android系统中对于外部设置的状态,比较常用的是 MEDIA_MOUNTED(SDcard存在且可以进行读写) MEDIA_MOUNTED_READ_ONLY (SDcard存在,只可以进行读操作)
当然还有其他的一些状态,可以在文档中进行查找到。

5:getRootDirectory()                  
获取到Android Root路径

6:isExternalStorageEmulated()   
返回Boolean值判断外部设置是否有效

7:isExternalStorageRemovable()
返回Boolean值,判断外部设置是否可以移除
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: