Android DownloadManager et SSL (https)

Oh, très bien. Il y a toujours quelque chose d'autre que quelques-uns... Grrr...

en tout cas, j'ai donc travaillé des jours et des jours à parcourir des informations Picasa vagues, incomplètes et contradictoires afin que mon application https://over.wiki/android/" class="blnk">Android puisse trouver une image Picasa et la télécharger en utilisant le gestionnaire de téléchargement. J'ai fait la touche finale et j'ai appuyé sur le bouton "Exécuter". Tout s'est bien passé jusqu'à ce que DownloadManager essayé de télécharger le fichier:

java.lang.IllegalArgumentException: Can only download HTTP URIs: https://example.com/image.jpg

dites-moi que vous plaisantez. Dites-moi qu'ils n'ont pas créer un gestionnaire de téléchargement qui ne peut pas gérer SSL...

mieux encore, dites-moi comment activer L'accès SSL dans le gestionnaire de téléchargement Android.

18
demandé sur Garret Wilson 2011-11-12 21:25:22

3 réponses

j'ai eu le même problème auparavant. Yup je vois que le support HTTPS est déjà dans ICS, mais pas dans 2.3.7 et ci-dessous, mais nous pouvons extraire le code source pour créer un DownloadManager pour supporter cela.

basé sur le code d'échantillon de http://android-er.blogspot.com/2011/07/sample-code-using-androidappdownloadman.html j'ai fait une démo avec DownloadManager extrait pour supporter HTTPS.

vous pouvez trouver le code échantillon ici https://github.com/alvinsj/android-https-downloadmanager-demo, exécutez simplement en changeant l'url à l'url de votre https.

7
répondu alvinsj 2012-05-10 12:21:37

Oui, il semble que DownloadManager prend uniquement en charge HTTP protocole: http://www.google.com/codesearch#cZwlSNS7aEw/frameworks/base/core/java/android/app/DownloadManager.java&exact_package=android&q=Can%20only%20download%20HTTP%20URIs&type=cs&l=343

je suis déçu aussi car je voulais juste l'utiliser sur un site HTTPS.

1
répondu Peter Knego 2011-11-12 17:38:54

j'ai trouvé une solution très simple pour cela:

request = new DownloadManager.Request(sourceUrl.replace("https://", "http://"))

étonnamment travaillé pour toutes les URLs https que j'ai essayé. Je ne suis pas sûr de la sécurité https, mais il n'y a pas d'exception et le fichier est téléchargé correctement.

-2
répondu PC. 2012-08-14 13:11:16