Как получить полную и свободную память телефона/SD карты в Android?

Я новичок в Android разработке, пишу файловый менеджер для Android. Мне необходимо реализовать возможность отображения состояния памяти телефона и SD-карты при ее наличии. Подскажите пожалуйста, каким образом я могу это сделать?


Ответы (1 шт):

Автор решения: Andrew

Сделать это можно таким способом:

StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
double sdAvailSize = (double)stat.getAvailableBlocks()
                   * (double)stat.getBlockSize();
//One binary gigabyte equals 1,073,741,824 bytes.
double gigaAvailable = sdAvailSize / 1073741824;

Вот тут еще и другие способы есть. Для получения полного размера можно воспользоваться таким способом:

StatFs statFs = new StatFs(Environment.getExternalStorageDirectory().getAbsolutePath());        
 long blockSize = statFs.getBlockSize();
 long totalSize = statFs.getBlockCount()*blockSize;
 long availableSize = statFs.getAvailableBlocks()*blockSize;
 long freeSize = statFs.getFreeBlocks()*blockSize;
→ Ссылка