2015-02-26 2 views
1

Я новичок в Android, и я хочу найти свободную память во внутренней памяти. Я использую две функции для поиска свободной памяти, но они показывают мне два разных значения в длинном формате. Я не знаю почему? Вот мой код:Использование встроенной памяти для Android

1) Результат getTIM() функция 558628864

public String getTIM(){ 
    File path = Environment.getDataDirectory(); 
    StatFs stat = new StatFs(path.getPath()); 
    long blockSize = stat.getBlockSize(); 
    long totalBlocks = stat.getBlockCount(); 
    String str = Long.toString(blockSize * totalBlocks); 
    return str; 
} 

2) Результат ITMStr() функция 914120704

public String ITMStr(){ 
    StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath()); 
    long blockCount = statFs.getBlockCountLong(); 
    long blockSize = statFs.getBlockSizeLong(); 
    long total = blockCount * blockSize; 
    String str = Long.toString(total); 
    return str; 
} 

Какое значение правильно?

ответ

0

По reference:

общественности статической getDataDirectory File()

Добавлено в уровне API 1 возвращенной каталог данных пользователя.

_

общественности статической getRootDirectory (File)

Добавлено в уровне API 1 Обратный корень из "системы" раздела с ядра ОС Android. Всегда присутствовать и монтироваться только для чтения.

Так что размеры разные, поскольку вы получаете размеры для разных вещей.

+0

Спасибо! Но я хочу получить полную внутреннюю память. Например, общая внутренняя память составляет 512 МБ, и я хочу показать 512 МБ как общую память устройства. Как я могу это сделать? – zxcdsa980

+0

Я не эксперт, но 'getRootDirectory' должен возвращать корневой раздел, поэтому это должен быть общий объем памяти. –