哦,太好了。总有别的事情…叽阿…
无论如何,我日复一日地在模糊、不完整和矛盾的Picasa信息中跋涉,以便我的Android应用程序可以找到Picasa图片并使用下载管理器下载它。所以刚才我做了最后的润色,点击了"运行"按钮。一切正常,直到DownloadManager试图下载文件:java.lang.IllegalArgumentException: Can only download HTTP URIs: https://example.com/image.jpg
告诉我你在开玩笑。告诉我他们没有做一个不能处理SSL的下载管理器…
更好的是,告诉我如何在Android下载管理器中打开SSL访问
我以前也遇到过同样的问题。是的,我看到HTTPS支持已经在ICS中,但不是在2.3.7和以下版本,但我们可以提取源代码来创建一个DownloadManager来支持它。
基于来自的示例代码http://android-er.blogspot.com/2011/07/sample-code-using-androidappdownloadman.html我用提取的DownloadManager做了一个demo来支持HTTPS。
您可以在这里找到示例代码https://github.com/alvinsj/android-https-downloadmanager-demo,只需将url更改为基于https的url即可运行。
是的,似乎DownloadManager
只支持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
我也很失望,因为我只是想在HTTPS网站上使用它。
我找到了一个非常简单的解决方案:
request = new DownloadManager.Request(sourceUrl.replace("https://", "http://"))
对我尝试的所有https url都有效。我不确定关于https的安全性,但没有例外,文件得到正确下载。