获取Android手机SD卡容量大小
2015-08-17 14:20
681 查看
Android系统没有在api文档中提及如何获取sd卡全部容量以及可用容量,但是通过查询源码就可以看到如何获取sd卡容量。
方法如下:
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSizeLong();
long totalBlocks = stmt.getBlockCountLong();
long availableBlocks = stmt.getAvailableBlocksLong();
return Formatter.formatFileSize(Context, totalBlocks * blockSize);
其中,stat.getBlockSizeLong(),stat.getBlockCountLong(), stat.getAvailableBlocksLong()只有在Android4.3及以后才能使用,之前的版本需要使用老版本的api。即stat.getBlockSize(),stat.getBlockCount(),stat.getAvailavleBlocks()。
所以在我们代码需要首先对Android的版本号进行判断,然后再选择相应的api使用。
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
// 判断当前Android版本是否大于等于4.3
if (Build.VERSION_SDK_INT > = Build.VERSION_CODES.JELLY_BEAN_MR2) {
long blockSize = stat.getBlockSizeLong();
long totalBlocks = stmt.getBlockCountLong();
long availableBlocks = stmt.getAvailableBlocksLong();
return Formatter.formatFileSize(Context, totalBlocks * blockSize);
} else {
// 当前Android版本号小于4.3
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
long availableBlocks = stmt.getAvailableBlocks();
reutrn Formatter.formatFileSize(Context, totalBlocks * blockSize);
}
方法如下:
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSizeLong();
long totalBlocks = stmt.getBlockCountLong();
long availableBlocks = stmt.getAvailableBlocksLong();
return Formatter.formatFileSize(Context, totalBlocks * blockSize);
其中,stat.getBlockSizeLong(),stat.getBlockCountLong(), stat.getAvailableBlocksLong()只有在Android4.3及以后才能使用,之前的版本需要使用老版本的api。即stat.getBlockSize(),stat.getBlockCount(),stat.getAvailavleBlocks()。
所以在我们代码需要首先对Android的版本号进行判断,然后再选择相应的api使用。
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
// 判断当前Android版本是否大于等于4.3
if (Build.VERSION_SDK_INT > = Build.VERSION_CODES.JELLY_BEAN_MR2) {
long blockSize = stat.getBlockSizeLong();
long totalBlocks = stmt.getBlockCountLong();
long availableBlocks = stmt.getAvailableBlocksLong();
return Formatter.formatFileSize(Context, totalBlocks * blockSize);
} else {
// 当前Android版本号小于4.3
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
long availableBlocks = stmt.getAvailableBlocks();
reutrn Formatter.formatFileSize(Context, totalBlocks * blockSize);
}
相关文章推荐
- Android笔记:去除标题栏
- Android清除本地数据缓存代码
- AndroidStudio开发工具快捷键整理分享
- Android事件分发机制
- 对于startActivity的使用改进
- android强行隐藏自带的输入法
- Mac下Android Studio快捷键
- 关于Android中的四大组件(Service的开启与关闭)
- android组件研究
- Android Camera 使用小结
- Android - sendOrderedBroadcast也可以这么用
- android 按需加载视图
- Java or Android 知识点书签
- android中的与GPS定位的API
- android 音乐模仿器demo,实现指定目录下的音乐循环播放,和在线播放的方法。
- android关闭cursor的方法
- 【攻克Android (33)】四大组件之 BroadcastReceiver
- Android------以后进先出的方式加载图片
- 关于Android popupWindow的位置显示 showAtLocation理解
- Cordova android框架详解