获取android手机内部存储空间和外部存储空间的参数
来源:互联网 发布:数据库运维管理制度 编辑:程序博客网 时间:2024/05/01 21:27
(1)Environment 是一个提供访问环境变量的类,常用的方法有:
A,getRootDirectory() ,返回File,获取Android 的根目录。
B,getDataDirectory() ,返回File ,获取Android 数据目录。
C,getExternalStorageDirectory() ,返回File ,获取外部存储目录即SDCard。
D,getExternalStorageState() ,返回String,获取外部存储设备的当前状态字串。
E,getDownloadCacheDirectory(),返回File ,获取Android 下载/缓存内容目录。
常用的字串变量,以getExternalStorageState返回值为例:
A,MEDIA_BAD_REMOVAL,表明SDCard 被卸载前己被移除。
B,MEDIA_CHECKING,表明对象正在磁盘检查。
C,MEDIA_MOUNTED,表明对象存在并具有读/写权限。
D,MEDIA_MOUNTED_READ_ONLY,表明对象权限为只读。
E,MEDIA_NOFS,表明对象为空白或正在使用不受支持的文件系统。
F,MEDIA_REMOVED,不存在SDCard。
G,MEDIA_SHARED,表明存储媒体正在通过USB共享。
H,MEDIA_UNMOUNTABLE,表明存储媒体无法挂载。
I, MEDIA_UNMOUNTED,表明存储媒体没有挂载。
(2)StatFs类,一个模拟linux的df命令的类,成员函数是获得底层Linux文件系统的属性函数。StatFs 常用方法:
A,getAvailableBlocks(),返回Int,获取当前系统可用存储空间的Block数。
B,getBlockCount(),返回Int,获取当前系统存储空间总的Block数。
C,getBlockSize(),返回Int ,获取当前系统Block占的大小,以字节为单位
D,getFreeBlocks(),返回Int ,该块区域剩余的空间(包括可用空间和保留空间)。
(3)一个获取系统和SD卡可用容量及总总量的实例,如下:
- import android.os.Environment;
- import android.os.StatFs;
- import java.io.File;
- public long getAvailableInternalMemorySize(){
- File path = Environment.getDataDirectory();
- StatFs stat = new StatFs(path.getPath());
- long blockSize = stat.getBlockSize();
- long availableBlocks = stat.getAvailableBlocks();
- return availableBlocks*blockSize;
- }
- public long getTotalInternalMemorySize(){
- File path = Environment.getDataDirectory();
- StatFs stat = new StatFs(path.getPath());
- long blockSize = stat.getBlockSize();
- long totalBlocks = stat.getBlockCount();
- return totalBlocks*blockSize;
- }
- public boolean externalMemoryAvailable(){
- return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
- }
- 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 -1;
- }
- }
- 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 -1;
- }
- }
从LOG输出数据即可,以M为单位。
- Log.i("zhangcheng","内部可用存储空间是:"+Long.toString(getAvailableInternalMemorySize()/(1024*1024)));
- Log.i("zhangcheng","内部总共存储空间是:"+Long.toString(getTotalInternalMemorySize()/(1024*1024)));
- Log.i("zhangcheng","外部可用存储空间是:"+Long.toString(getAvailableExternalMemorySize()/(1024*1024)));
- Log.i("zhangcheng","外部总共存储空间是:"+Long.toString(getTotalExternalMemorySize()/(1024*1024)));
(4)需要注意的是,访问存储器文件系统,也需要在XML中添加权限,如下:
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
- <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
原文地址: http://blog.csdn.net/zhandoushi1982/article/details/8560233
- 获取android手机内部存储空间和外部存储空间的参数
- android获取手机内部存储空间和外部存储空间
- android 获取手机内部存储空间和外部存储空间
- android 获取手机内部存储空间和外部存储空间
- android获取手机内部存储空间和外部存储空间
- android获取手机内部存储空间和外部存储空间
- Android获取手机内部存储空间和外部存储空间
- android获取手机内部存储空间和外部存储空间
- android获取手机内部存储空间和外部存储空间 && 如何确定一个应用的安装位置
- android获取手机内部存储空间和外部存储空间 && 如何确定一个应用的安装位置
- android获取手机内部存储空间和外部存储空间 && 如何确定一个应用的安装位置
- android获取内部外部存储空间
- Android存储空间——外部存储空间和内部存储空间
- Android获取内部和SDCard的存储空间
- Android获取外部和内部存储空间总大小
- 获取android手机内部存储空间和外…
- Android 获取手机存储空间
- Android 漫游之路------将文件保存到内存、SD以及获取手机内部存储与外部存储空间的大小
- ExpandableListView替换系统箭头图标
- leetcode word ladder bfs
- servlet原理--Tomcat与Servlet如何解耦
- Visual Studio 2013 在使用 MVC4 无智能提示
- NetSerializer - A Fast, Simple Serializer for .NET
- 获取android手机内部存储空间和外部存储空间的参数
- 蓝桥杯-基础练习-十六进制转十进制
- 正则表达式匹配HTML标签或标记
- 浅析java内部类
- hdu 2103 Family planning
- 小技巧-自增或自减符号位置
- CDH 的Kerberos认证配置
- 获取省市县
- js获取路径后面传递的参数