Мое приложение сохраняет файлы на SD-карте, но прежде чем сохранять файлы, мне нужно проверить, есть ли свободная память. Мне нужно, чтобы проверить, сколько свободной памяти на SD-карте.
Что-то вроде:
if(MemoryCard.getFreeMemory()>20Mb) { saveFiles(); } else { Toast.makeText(this, "Not enough memory", 100).show(); }
От: http://groups.google.com/group/android-developers/browse_thread/thread/ecede996463a4058
StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath()); long bytesAvailable = (long)stat.getBlockSize() * (long)stat.getBlockCount(); long megAvailable = bytesAvailable / 1048576;
StatFs class
Вы можете использовать здесь, указать путь для своего внутреннего и внешнего каталога и рассчитать общее, бесплатное и доступное пространство.
StatFs memStatus = new StatFs(Environment.getExternalStorageDirectory().getPath()); long bytesAvailable = (long)memStatus.getBlockSize() * (long)memStatus.getAvailableBlocks();
Дополнительную информацию см. В документации . bytesAvailable
– это байты, которые вы можете преобразовать в тот, который вам нужен.
Для Android 4.3+ (уровень API: 18+)
StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath()); long bytesAvailable = getAvailableBytes();