development - Android DownloadManager y SSL(https)
development android (3)
Oh, genial. Siempre hay algo más que algunos ... Grrr ...
De todos modos, trabajé días y días en información vaga, incompleta y contradictoria de Picasa para que mi aplicación de Android pudiera encontrar una imagen de Picasa y descargarla con el administrador de descargas. Así que justo ahora hice los toques finales y presioné el botón "Ejecutar". Todo salió bien hasta que DownloadManager intentó descargar el archivo:
java.lang.IllegalArgumentException: Can only download HTTP URIs: https://example.com/image.jpg
Dime que estas bromeando Dime que no hicieron un administrador de descargas que no puede manejar SSL ...
Mejor aún, dígame cómo activar el acceso SSL en el administrador de descargas de Android.
He encontrado una solución muy fácil para esto:
request = new DownloadManager.Request(sourceUrl.replace("https://", "http://"))
Sorprendentemente funcionó para todas las URL https que probé. No estoy seguro de la seguridad de https, pero no hay ninguna excepción y el archivo se descarga correctamente.
Sí, parece que DownloadManager
solo admite el protocolo HTTP
: 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
También estoy decepcionado porque solo quería usarlo en un sitio HTTPS.
Tuve el mismo problema anteriormente. Sí, veo que la compatibilidad con HTTPS ya está en ICS, pero no en 2.3.7 y más abajo, pero podemos extraer el código fuente para crear un DownloadManager para admitir eso.
Basado en el código de muestra de http://android-er.blogspot.com/2011/07/sample-code-using-androidappdownloadman.html hice una demostración con el DownloadManager extraído para admitir HTTPS.
Puede encontrar el código de muestra aquí https://github.com/alvinsj/android-https-downloadmanager-demo , ejecutando simplemente cambiando la URL a su URL basada en https.