获取手机内存、SD卡总容量和剩余容量

来源:互联网 发布:jsp酒店管理系统源码 编辑:程序博客网 时间:2024/06/10 12:46
import java.io.File;import android.app.Activity;import android.os.Bundle;import android.os.Environment;import android.os.StatFs;import android.text.format.Formatter;import android.view.View;import android.widget.TextView;public class MainActivity extends Activity {@Overrideprotected 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;}}

0 0
原创粉丝点击