您的位置:首页 > 其它

获取SD卡和手机内存空间大小

2015-05-08 23:53 288 查看
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

TextView tvMemoryInfo = (TextView) findViewById(R.id.tv_memory_info);

// 获得sd卡的内存状态
File sdcardFileDir = Environment.getExternalStorageDirectory();
String sdcardMemory = getMemoryInfo(sdcardFileDir);

// 获得手机内部存储控件的状态
File dataFileDir = Environment.getDataDirectory();
String dataMemory = getMemoryInfo(dataFileDir);

tvMemoryInfo.setText("SD卡: " + sdcardMemory + "\n手机内部: " + dataMemory);
}

/**
* 根据路径获取内存状态
* @param path
* @return
*/
private String getMemoryInfo(File path) {
// 获得一个磁盘状态对象
StatFs stat = new StatFs(path.getPath());

long blockSize = stat.getBlockSize();	// 获得一个扇区的大小

long totalBlocks = stat.getBlockCount();	// 获得扇区的总数

long availableBlocks = stat.getAvailableBlocks();	// 获得可用的扇区数量

// 总空间
String totalMemory =  Formatter.formatFileSize(this, totalBlocks * blockSize);
// 可用空间
String availableMemory = Formatter.formatFileSize(this, availableBlocks * blockSize);

return "总空间: " + totalMemory + "\n可用空间: " + availableMemory;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐