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

Androidx学习笔记(13)-- 获取sd卡剩余容量的代码

2016-01-22 18:03 477 查看

获取sd卡剩余容量的代码

导入Settings项目查找“可用空间”得到
<stringname="memory_available"msgid="418542433817289474">"可用空间"</string>
查找"memory_available",得到
<Preferenceandroid:key="memory_sd_avail"
style="?android:attr/preferenceInformationStyle"
android:title="@string/memory_available"
android:summary="00"/>
查找"memorysdavail",得到
//这个字符串就是sd卡剩余容量
formatSize(availableBlocks*blockSize)+readOnly
//这两个参数相乘,得到sd卡以字节为单位的剩余容量
availableBlocks*blockSize
存储设备会被分为若干个区块,每个区块有固定的大小区块大小*区块数量等于存储设备的总大小
importjava.io.File;
importandroid.os.Build;
importandroid.os.Bundle;
importandroid.os.Environment;
importandroid.os.StatFs;
importandroid.app.Activity;
importandroid.text.format.Formatter;
importandroid.view.Menu;
importandroid.widget.TextView;
publicclassMainActivityextendsActivity{
@SuppressWarnings("deprecation")
@Override
	protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Filepath=Environment.getExternalStorageDirectory();
StatFsstat=newStatFs(path.getPath());
longblockSize;
longtotalBlocks;
longavailableBlocks;
//获取当前系统版本的等级VERSION_CODES.JELLY_BEAN_MR24.3开始可以使用
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.JELLY_BEAN_MR2){
	blockSize=stat.getBlockSizeLong();
totalBlocks=stat.getBlockCountLong();
availableBlocks=stat.getAvailableBlocksLong();
}
else{
	blockSize=stat.getBlockSize();
totalBlocks=stat.getBlockCount();
availableBlocks=stat.getAvailableBlocks();
}
TextViewtv=(TextView)findViewById(R.id.tv);
tv.setText(formatSize(availableBlocks*blockSize));
}
	privateStringformatSize(longsize){
returnFormatter.formatFileSize(this,size);
}
}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: