Mijn vraag
Bij mijn Android App, Oxygen Updater, lopen gebruikers sinds de laatste tijd massaal tegen het probleem aan dat downloads halverwege opnieuw worden gestart en hierdoor niet worden afgerond. Dit is frustrerend, kost veel data en zou niet mogen voorkomen (tenzij de verbinding van de gebruiker daadwerkelijk wegvalt).
Doel van dit topic
Met dit topic zou ik graag willen zorgen dat dit probleem wordt opgelost, ofwel via een nieuwe release van mijn app, danwel via een configuratie-oplossing die gebruikers moeten doorvoeren. Uiteraard wat dit probleem het beste oplost.
Relevante software en hardware die ik gebruik
- De app is ontwikkeld met de officiële Android SDK, de productieversie van de app target momenteel Android Oreo (API level: 28). Een update van de targetSDKVersion naar Android Pie (API level: 29) staat gepland maar lost dit probleem niet op.
- Android Studio 3.2.1 (nieuwste)
...
Wat ik al gevonden of geprobeerd heb
- Het herstarten komt omdat de DownloadManager API van het OS de volgende code afgeeft:
PAUSED_WAITING_TO_RETRY
De oorzaak hiervan staat waarschijnlijk in het volgende stukje logging:
09-21 17:45:00.956 18538-18649/? W/DownloadManager: [152] Stop requested with status HTTP_DATA_ERROR: Failed reading response: java.net.ProtocolException: unexpected end of stream
09-21 17:45:00.958 18538-18649/? D/DownloadManager: [152] Finished with status WAITING_TO_RETRY
09-21 17:45:47.253 18538-18686/? D/DownloadManager: [152] Starting
09-21 17:45:50.485 18538-18686/? D/DownloadManager: [152] Finished with status SUCCESS
"unexpected end of stream".
Maar: Waarom wordt die stream meerdere keren achter elkaar in mijn app geclosed? Terwijl eenzelfde gebruiker dezelfde URL wel met Chrome op zijn telefoon kan downoaden?
Voorbeeld URL die dit probleem heeft:
http://otafsc1.h2os.com/patch/amazone2/GLO/OnePlus2Oxygen/OnePlus2Oxygen_14.A.32_GLO_032_1710240102/OnePlus2Oxygen_14_OTA_031-032_patch_1710240102_88168229b9163dd.zip
Hieruit heb ik al zelf opgemaakt:
- De downloadlink is HTTP, dus het kan geen SSL of certificate fout zijn.
- De SDK website zegt hier niets over hoe je dit kan fixen
- Op StackOverflow werd als suggestie gegeven om de header Accept-Encoding: Identity toe te voegen. Dit maakt geen verschil
...
Bij mijn Android App, Oxygen Updater, lopen gebruikers sinds de laatste tijd massaal tegen het probleem aan dat downloads halverwege opnieuw worden gestart en hierdoor niet worden afgerond. Dit is frustrerend, kost veel data en zou niet mogen voorkomen (tenzij de verbinding van de gebruiker daadwerkelijk wegvalt).
Doel van dit topic
Met dit topic zou ik graag willen zorgen dat dit probleem wordt opgelost, ofwel via een nieuwe release van mijn app, danwel via een configuratie-oplossing die gebruikers moeten doorvoeren. Uiteraard wat dit probleem het beste oplost.
Relevante software en hardware die ik gebruik
- De app is ontwikkeld met de officiële Android SDK, de productieversie van de app target momenteel Android Oreo (API level: 28). Een update van de targetSDKVersion naar Android Pie (API level: 29) staat gepland maar lost dit probleem niet op.
- Android Studio 3.2.1 (nieuwste)
...
Wat ik al gevonden of geprobeerd heb
- Het herstarten komt omdat de DownloadManager API van het OS de volgende code afgeeft:
PAUSED_WAITING_TO_RETRY
De oorzaak hiervan staat waarschijnlijk in het volgende stukje logging:
09-21 17:45:00.956 18538-18649/? W/DownloadManager: [152] Stop requested with status HTTP_DATA_ERROR: Failed reading response: java.net.ProtocolException: unexpected end of stream
09-21 17:45:00.958 18538-18649/? D/DownloadManager: [152] Finished with status WAITING_TO_RETRY
09-21 17:45:47.253 18538-18686/? D/DownloadManager: [152] Starting
09-21 17:45:50.485 18538-18686/? D/DownloadManager: [152] Finished with status SUCCESS
"unexpected end of stream".
Maar: Waarom wordt die stream meerdere keren achter elkaar in mijn app geclosed? Terwijl eenzelfde gebruiker dezelfde URL wel met Chrome op zijn telefoon kan downoaden?
Voorbeeld URL die dit probleem heeft:
http://otafsc1.h2os.com/patch/amazone2/GLO/OnePlus2Oxygen/OnePlus2Oxygen_14.A.32_GLO_032_1710240102/OnePlus2Oxygen_14_OTA_031-032_patch_1710240102_88168229b9163dd.zip
Hieruit heb ik al zelf opgemaakt:
- De downloadlink is HTTP, dus het kan geen SSL of certificate fout zijn.
- De SDK website zegt hier niets over hoe je dit kan fixen
- Op StackOverflow werd als suggestie gegeven om de header Accept-Encoding: Identity toe te voegen. Dit maakt geen verschil
...
[Voor 1% gewijzigd door Creepy op 24-10-2018 09:39]