Android系统提供了Environment 和StatFs两个类,配合可以实现对存储设备容量的查看。
Environment: 获取系统中的存储设备信息
getDataDirectory(): 获取应用存储空间文件对象。
getExternalStorageDirectory(): 获取外部存储设备及SD卡文件对象。
getRootDirectory(): 获取系统空间文件对象。
StatFs: 用于获取具体文件的信息。
getBlockCount(): 获取存储块数量。
getAvailableBlocks(): 获取存储块数量。
getBlockSize(): 获取存储块大小。
因为Android是基于Linux系统的,所以其没有盘符的概念,而且是以存储块来存储数据。所以获得容量的正确方式为:
1. 通过Environment获取需要检测容量的文件对象。
2. 构建StatFs对象。
3. 获取存储块数量。
4. 获取存储块大小。
5. 计算得出容量大小。
通过getBlockSize()方法获取出来的值,是以字节做单位。
下面是代码:
package Getystem_file_info.demo;
import java.io.File;
import java.text.DecimalFormat;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.os.StatFs;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView tv1,tv2,tv3,tv4;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findVeiw();
if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){
File externalStoragePath = Environment.getExternalStorageDirectory();
StatFs statFs = new StatFs(externalStoragePath.getPath());
int blockSize = statFs.getBlockSize();
int blockCount = statFs.getBlockCount();
int availableBlocks = statFs.getAvailableBlocks();
int freeBlocks = statFs.getFreeBlocks();
String[] blockSizes = sizeFormat(blockCount*blockSize);
String[] availableSize = sizeFormat(availableBlocks*blockSize);
String[] freebleSize = sizeFormat(freeBlocks*blockSize);
tv1.setText("外储设备总大小:"+ blockSizes[0] + blockSizes[1] );
tv2.setText("外储设备可用大小:"+ availableSize[0] + availableSize[1] );
tv3.setText("外储设备freeBlocks大小:"+ freebleSize[0] + freebleSize[1] );
}
}
private void findVeiw() {
tv1 = (TextView) this.findViewById(R.id.textview1);
tv2 = (TextView) this.findViewById(R.id.textview2);
tv3 = (TextView) this.findViewById(R.id.textview3);
}
String[] sizeFormat(long size) {
String str = "B";
if(size >= 1024) {
str = "KB";
size /= 1024;
if(size >= 1024) {
str = "MB";
size /= 1024;
}
}
DecimalFormat format = new DecimalFormat();
format.setGroupingSize(3);
String[] result = new String[2];
result[0] = format.format(size);
result[1] = str;
return result;
}
}
分享到:
相关推荐
获取手机剩余内部存储大小,简单的demo
博客地址:http://blog.csdn.net/lowprofile_coding/article/details/48269011 1.获取扩展存储设备 2.获取sdcard2外部存储空间 3.获取可用的 EMMC 内部存储空间 4.获取其他外部存储可用空间 5.获取内部存储目录
移动设备上可以有两种的存储方式:手机内部空间和sdcard外部空间。对于要使用存储空间,要使用哪一个?如何判断是否有足够的空间?sdcard是否挂载?等等诸多问题就来了。 对于设备内部存储空间来说,是一定会存在的...
Android获取储存信息以及内存信息可以用adb命令查看。... * 获取手机内存总大小 * @return */ public static String getTotalMemorySize() { try { FileReader fr = new FileReader(FILENAME_PROC_ME
获取ios设备的总内存大小和剩余内存大小
本文为大家分享了native.js获取手机硬件基本信息实例代码android版包括手机MAC地址,手机内存大小,手机存储空间大小,手机CPU信息等手机硬件基本信息
Android手机存储分为两个部分:内部存储和外部存储,内部存储一般是手机自带的存储空间,外部存储指外插SD卡提供的存储空间;随着手机发展,这两个存储的定义又有了一些些变化,新的手机不再有外插SD卡的概念,...
适合建立区域性的电子商务补充商务...如果上传空间使用,需要获取许可码, 在地址localhost或127.0.0.1环境目录下, 可以无需输入许可码就可以正常使用测试,功能无限制。 更多使用细节请浏览压缩包里的《安装说明》
零安装:用户只需通过微信扫一扫或搜索功能,即可打开和使用小程序,大大降低了用户的使用门槛和手机存储空间压力。 速度快:加载速度相较于传统的HTML5网页更快,依托于微信强大的基础设施,能够实现近乎原生应用...
2、轻松获取设备信息,包括设备型号、CPU信息、运行内存、存储空间、屏幕信息、网络连接信息、电池信息等 3、获取已安装应用信息,包括包名、应用名、图标等,并且可对应用进行安装/卸载、启用/停用、清除数据等操作...
零安装:用户只需通过微信扫一扫或搜索功能,即可打开和使用小程序,大大降低了用户的使用门槛和手机存储空间压力。 速度快:加载速度相较于传统的HTML5网页更快,依托于微信强大的基础设施,能够实现近乎原生应用...
零安装:用户只需通过微信扫一扫或搜索功能,即可打开和使用小程序,大大降低了用户的使用门槛和手机存储空间压力。 速度快:加载速度相较于传统的HTML5网页更快,依托于微信强大的基础设施,能够实现近乎原生应用...
在这个现代时代,手机等电子设备的... 调节器电路的输出存储在存储设备中。 功率电平指示由比较器电路提供。 储存的能量可用于为手机电池、应急灯等充电。 为用户提供的设备将安静且易于携带,并且需要尽可能少的空间。
挂载USB存储设备时,如果不用samba请删之。) 6. 按住reset键30秒后led闪烁,60秒之前松开reset键则恢复出厂设置。 7. LAN/WAN两个网口正常。 8. 默认开启WiFi,无密码。 9. 支持模式切换开关,定义如下: AP: ...
项目里面提供时间轴转星座|生肖工具、系统存储空间获取工具、文件大小格式化工具、获取指定文件大小工具、数字格式化工具、 Base64编码解码工具、MD5加密工具、AES加密解码工具(支持android端平台加密解密,java端和...
零安装:用户只需通过微信扫一扫或搜索功能,即可打开和使用小程序,大大降低了用户的使用门槛和手机存储空间压力。 速度快:加载速度相较于传统的HTML5网页更快,依托于微信强大的基础设施,能够实现近乎原生应用...
挂载USB存储设备时,如果不用samba请删之。) 6. 按住reset键30秒后led闪烁,60秒之前松开reset键则恢复出厂设置。 7. LAN/WAN两个网口正常。 8. 默认开启WiFi,无密码。 9. 支持模式切换开关,定义如下: AP: ...
OwnCloud能让你将所以的文件掌握在自己的手中,只要你的设备性能空间充足,那么几乎没有任何的限制。 跨平台性 OwnCloud跨平台支持windows、mac、Android、ios、linux等平台。 使用方式 提供了网页版...