Я пытаюсь вычислить общий объем хранения файлов, используемый в Android. Я использовал используемую рекурсивную функцию hereРассчитанный свободный размер отличается от системной статистики
Когда я вычитаю этот размер из общего хранилища своей SD-карты, я получаю отличный от того, что Android дает, используя StatFs.
StatFs stat = new StatFs(path);
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getFreeBlocks();
return Formatter.formatFileSize(ctx, availableBlocks * blockSize);
Это не разница в несколько Kb, но до 2 ГБ на 16 ГБ SD-карте.
Я проверил пару приложений для анализа хранилищ на рынке, и у них такая же проблема. Говорят, что у меня 8,3 Гб бесплатно, в то время как Android продолжает говорить, что это 6 Гбит (что является тем же значением, которое я получаю при подключении телефона к компьютеру).
Что нам не хватает здесь?
Вы укоренены, с доступом ко всему диску? Если у вас установлены приложения на SD, ваша функция может не добавлять их к вашей «используемой» сумме. – Geobits
На самом деле я работаю с Galaxy Nexus, у которого нет надлежащей SD-карты, кроме эмулируемой. Я предполагаю, что тот же принцип применяется. Я попробую укоренять свое устройство. –
Не можете ли вы получить размер этой части SD без укоренения? –