在设置可以看到系统的剩余存储空间:
private final StorageManager mStorageManager;
private final StorageManagerVolumeProvider mStorageManagerVolumeProvider;
//在构造函数对其实例化
mStorageManager = mContext.getSystemService(StorageManager.class);
mStorageManagerVolumeProvider = new StorageManagerVolumeProvider(mStorageManager);
//调用下面的方法即可获取
public long getMyAvailableRom(){
Log.d(TAG, "getMyAvailableRom;");
final PrivateStorageInfo info = PrivateStorageInfo.getPrivateStorageInfo(
getStorageManagerVolumeProvider());
Log.d(TAG, "getMyAvailableRom info.freeBytes : " + info.freeBytes+";");
return info.freeBytes;
}
@VisibleForTesting
protected StorageManagerVolumeProvider getStorageManagerVolumeProvider() {
return mStorageManagerVolumeProvider;
}
或者下面方法:
public long getAvailableRom(){
File path = Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSizeLong();
long availableBlocks = stat.getAvailableBlocksLong();
Log.d(TAG, "blockSize : " + blockSize+"; availableBlocks : "+availableBlocks+"; "+"result : "+(blockSize * availableBlocks/1000000)+";");
Log.d(TAG, "result : "+(blockSize * availableBlocks/1000000)+";");
return blockSize * availableBlocks/1000000;//返回M
}