DownloadManager baixando arquivos acima de 2,1 GB

Estou trabalhando em um aplicativo e um dos recursos em que estou trabalhando é baixar alguns arquivos binários. Alguns deles são realmente grandes (mais do que vários mega-bytes). Os downloads estão sendo finalizados, desde que o tamanho do arquivo seja menor que 2 GB.

Fiquei preso em um arquivo de 3,2 GB e recebo atualizações de progresso (estou agrupando o DownloadManager para atualizações de progresso), mas quando o download é concluído, o arquivo não está presente no caminho do arquivo de destino. Interrogando oDownloadManager para esse ID de download, receboSTATUS_FAILED e razãoERROR_UNKNOWN - os detalhes de erro favoritos que alguém jamais desejará!

O estranho é que isso aparece na maioria dos dispositivos, mas para alguns (como o Samsung SG 4 Active OS 4.2.2 e o LG Nexus 5 OS 4.4.2), ele não aparece.

Fazendo uma investigação extra, descobri que isso parece ser umbug no AndroidDownloadManager implementação. Parece que a implementação do Android armazena a contagem de downloads como int, mas quando essa contagem ultrapassaInteger.MAX_VALUE o download termina como falhou.

Estou pensando em substituir oDownloadManager uso com um serviço em primeiro plano, mas eu não desistiria ainda ...

Vocês enfrentaram isso e, se sim, como consertaram? Existe alguma solução alternativa para usarDownloadManager na pré-4.2.2 para que eu possa baixar mais de 2,1 GB por arquivo?

questionAnswers(5)

yourAnswerToTheQuestion