Как получить общий размер внутреннего хранилища, включая использование системы в Android (Kotlin)?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как получить общий размер внутреннего хранилища, включая использование системы в Android (Kotlin)?

Сообщение Anonymous »

Я разрабатываю приложение файлового менеджера в Котлине, и мне нужно получить общий размер внутреннего хранилища, включая пространство, занятое системой.

Код: Выделить всё

val stat = StatFs(path) // path = "/storage/emulated/0"
val totalBytes = stat.totalBytes
< /code>
Этот метод работает правильно для получения общего размера SD -карты. Однако при использовании для внутренней хранилища он не включает пространство, используемое системой, и возвращает более низкое значение, чем фактический размер: < /p>
Log.d("totalBytes", totalBytes.toString()) // Returns 109799354368
< /code>
Добавление вставленного системой пространства в возвращаемое значение дает правильный общий размер внутреннего хранилища. src = "https://i.sstatic.net/h3tipbuo.jpg"/>
Я также исследовал потенциальные решения и обнаружил два основных подхода: 
[list]
[*] Использование команды DF в Linux (на котором основан Android). Тем не менее, я понимаю, что этот метод имеет ограничения, риски, и, как правило, лучше использовать официальные API Android. Этот метод требует разрешения package_usage_stats, которое является чувствительным разрешением. Это не запрашивается с помощью стандартных диалогов разрешений на системную систему (یا разрешение на выполнение выполнения یا Типичные диалоговые окна системного разрешения), и пользователь должен быть направлен на настройки для его предоставления. Кроме того, приложение «Files By Google», по -видимому, может получить общий размер внутреннего хранилища, не запрашивая это разрешение.

[/list]
Я искал онлайн -экступирование. Как я могу извлечь общий размер внутреннего хранилища, не требуя чувствительных разрешений или, по крайней мере, только с внешними разрешениями хранения (READ_EXTERNAL_STORAGE
или Manage_external_storage )?

Подробнее здесь: https://stackoverflow.com/questions/794 ... android-ko
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»