android获取手机存储状态
16lz
2021-01-26
布局文件activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
MainActivity代码
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView tvState = (TextView) findViewById(R.id.tv_state); //获得sd卡的内存状态 File sdCardDir = Environment.getExternalStorageDirectory() ; String sd = getMemoryInfo(sdCardDir) ; //获得手机内部的存储状态 File dataDir = Environment.getDataDirectory() ; String phone = getMemoryInfo(dataDir) ; tvState.setText("SD卡: \n"+sd+"\n\n手机内部: \n"+phone); } 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,blockSize* totalBlocks) ; //可用空间 String availableMemory = Formatter.formatFileSize(this, blockSize*availableBlocks) ; return "总空间: "+totalMemory+"\n"+"可用空间: "+availableMemory; }}
效果图
由于测试的手机没有sdCard,所以显示sdCard的总空间和可用空间和手机内部存储的一致,若手机有sdCard就会根据sdCard的总空间和可用空间来显示了。
更多相关文章
- 【Android(安卓)ROM定制】CyanogenMod源码下载和编译
- 用fiddler做代理服务器转发请求
- 如何在Root的手机上开启ViewServer,使得HierachyViewer能够连接
- Android(安卓)手机卫士--参照文档编写选择器
- android中editText弹出软键盘并且根据editText中是否是内容来控
- Android之手机电池电量应用
- Android友盟判断手机是否存在微博客户端
- Android之INSTALL_FAILED_INSUFFICIENT_STORAG解决办法
- (未解决)问题记录ionic android 签名之后安装到手机上点击运行出