Я связал свое приложение с файлом расширения APK. После множества проблем я наконец-то могу скачать свои видеоресурсы. Теперь я заметил следующую проблему. Процесс отображения для проверки XAPK всегда разный и случайный.
Размер моего файла obb составляет 385.956.198 байт:
private static final XAPKFile[] xAPKS = {new XAPKFile(true, // true signifies a main file
8, // the version of the APK that the file was uploaded
385956198 // the length of the file in bytes
)};
На моем устройстве Lollipop он всегда составляет от 366 до 368 МБ (но никогда не 368,07):
На устройстве Nougat прогресс очень странный. Это может быть 155 МБ, 82 МБ, 102 МБ ...
Хотя похоже, что проверка не завершена, я могу нажать «Далее» и открыть видеофайлы. Поэтому у меня нет идей, что вызывает эту проблему и почему значения на устройстве Nougat намного ниже общего размера файла.
скопировано из здесь
Проблема здесь в том, что общий размер рассчитывается для записей в заархивированном файле, что приводит к несжатому размеру файлов внутри заархивированного файла. И прогресс отображается на том же основании.
Первое решение состоит в том, что для проверки доступности файла расширения оставьте чек в том виде, в котором он есть в вашем приложении, но для расчета укажите исходный размер. Вычисления выполняются для заархивированных записей в библиотеке zip-файлов, измените ее соответствующим образом, если это возможно. (Я не пробовал это решение.)
Во-вторых, сжимайте файлы таким образом, чтобы файлы внутри папки не были сжаты. В этом случае вам будет нечего делать, но недостатком будет то, что пользователю придется скачивать файл немного большего размера.