Я работаю над приложением, и одна из функций, над которыми я работаю, - это загрузка некоторых двоичных файлов. Некоторые из них действительно большие (более нескольких мегабайт). Загрузки заканчиваются нормально, пока размер файла меньше 2 ГБ.
Я застрял в файле размером 3,2 ГБ, чтобы получить обновления для процесса обновления (я собираю DownloadManager для обновлений прогресса), но когда загрузка завершена, файл отсутствует в пути к целевому файлу. Опросив DownloadManager
для этого идентификатора загрузки, я получаю STATUS_FAILED
и причину ERROR_UNKNOWN
- список любимых ошибок, которые вы когда-либо пожелаете!
Что странно, так это то, что это появляется на большинстве устройств, но для некоторых (например, Samsung SG 4 Active OS 4.2.2 и LG Nexus 5 OS 4.4.2) оно не появляется.
Проведя дополнительное исследование, я узнал, что это выглядит как ошибка в реализации Android DownloadManager
. Кажется, реализация Android хранит счетчик скачиваний как int, но когда этот счет идет выше Integer.MAX_VALUE
, загрузка заканчивается как неудачная.
Я собираюсь заменить использование DownloadManager
на службу переднего плана, но я бы не сдался...
Вы, ребята, смотрели на это, и если да, то как вы это исправили?
Есть ли необходимость использовать DownloadManager
в пред-4.2.2, чтобы я мог загрузить более 2,1 ГБ на файл?