Я не знаю о других типах запоминающих устройств, я знаю только внутреннее запоминающее устройство и внешнее запоминающее устройство для Android.
Теперь для проверки доступны внешнее запоминающее устройство что-то вроде
public static boolean isSdPresent() {
return android.os.Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED);
}
return type boolean(true->available,false->NA).
И для Внутреннее хранилище , (Внутреннее хранилище всегда остается (присутствует), поэтому нет необходимости проверять его) просто получите,
File path = Environment.getDataDirectory();
Теперь, вв обоих случаях проверяется доступная свободная память и используемая память,
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return Formatter.formatFileSize(this, availableBlocks * blockSize);