如何检查安卓设备上的可用空间?在SD卡上?
如何检查Android设备上还剩下多少MB或GB?我使用的是 JAVA 和 Android SDK 2.0.1。
是否有任何系统服务会公开类似的东西?
如何检查Android设备上还剩下多少MB或GB?我使用的是 JAVA 和 Android SDK 2.0.1。
是否有任何系统服务会公开类似的东西?
雅罗斯拉夫的答案将给出SD卡的大小,而不是可用空间。StatFs将返回正常程序仍然可以访问的块数。这是我正在使用的函数:getAvailableBlocks()
public static float megabytesAvailable(File f) {
StatFs stat = new StatFs(f.getPath());
long bytesAvailable = (long)stat.getBlockSize() * (long)stat.getAvailableBlocks();
return bytesAvailable / (1024.f * 1024.f);
}
public static float megabytesAvailable(File f) {
StatFs stat = new StatFs(f.getPath());
long bytesAvailable = 0;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR2)
bytesAvailable = (long) stat.getBlockSizeLong() * (long) stat.getAvailableBlocksLong();
else
bytesAvailable = (long) stat.getBlockSize() * (long) stat.getAvailableBlocks();
return bytesAvailable / (1024.f * 1024.f);
}
试试这个代码:
StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
long bytesAvailable = (long)stat.getBlockSize() *(long)stat.getBlockCount();
long megAvailable = bytesAvailable / 1048576;
System.out.println("Megs: " + megAvailable);
getBlockCount()
- SD卡的返回大小;
getAvailableBlocks()
- 返回正常程序仍然可以访问的块数(谢谢Joe)