使用DownloadManager下载HTTP/HTTPS URI [英] download HTTP/HTTPS URIs with DownloadManager

查看:217
本文介绍了使用DownloadManager下载HTTP/HTTPS URI的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Google上搜索了一下.但这无济于事.

I googled and find something about this. But that doesn't help.

Android版本:4.0+
这是我的代码:

Android Version: 4.0+
here's my code:

DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));

我的网址是 https://static.test.com/downloads/xxx.apk

方案是https,但仍然出现错误:

Scheme is https, but I still get an error:

02-10 11:18:23.710 E/AndroidRuntime( 7550): java.lang.RuntimeException: Unable to start service com.souyidai.investment.android.service.DownloadService@4344e5e0 with Intent { act=download_with_download_manager cmp=com.souyidai.investment.android/.service.DownloadService (has extras) }: java.lang.IllegalArgumentException: Can only download HTTP/HTTPS URIs:  https://static.test.com/downloads/xxx.apk
02-10 11:18:23.710 E/AndroidRuntime( 7550):     at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2711)
02-10 11:18:23.710 E/AndroidRuntime( 7550):     at android.app.ActivityThread.access$2100(ActivityThread.java:141)
02-10 11:18:23.710 E/AndroidRuntime( 7550):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1299)
02-10 11:18:23.710 E/AndroidRuntime( 7550):     at android.os.Handler.dispatchMessage(Handler.java:102)
02-10 11:18:23.710 E/AndroidRuntime( 7550):     at android.os.Looper.loop(Looper.java:136)
02-10 11:18:23.710 E/AndroidRuntime( 7550):     at android.app.ActivityThread.main(ActivityThread.java:5047)
02-10 11:18:23.710 E/AndroidRuntime( 7550):     at java.lang.reflect.Method.invokeNative(Native Method)
02-10 11:18:23.710 E/AndroidRuntime( 7550):     at java.lang.reflect.Method.invoke(Method.java:515)
02-10 11:18:23.710 E/AndroidRuntime( 7550):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:806)
02-10 11:18:23.710 E/AndroidRuntime( 7550):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
02-10 11:18:23.710 E/AndroidRuntime( 7550):     at dalvik.system.NativeStart.main(Native Method)
02-10 11:18:23.710 E/AndroidRuntime( 7550): Caused by: java.lang.IllegalArgumentException: Can only download HTTP/HTTPS URIs:  https://static.test.com/downloads/xxx.apk
02-10 11:18:23.710 E/AndroidRuntime( 7550):     at android.app.DownloadManager$Request.<init>(DownloadManager.java:642)
02-10 11:18:23.710 E/AndroidRuntime( 7550):     at com.souyidai.investment.android.service.DownloadService.onStartCommand(DownloadService.java:114)

这是DownloadManager.请求代码:

Here's the DownloadManager.Request code:

    public Request(Uri uri) {
        if (uri == null) {
            throw new NullPointerException();
        }
        String scheme = uri.getScheme();
        if (scheme == null || (!scheme.equals("http") && !scheme.equals("https"))) {
            throw new IllegalArgumentException("Can only download HTTP/HTTPS URIs: " + uri);
        }
        mUri = uri;
    }

有什么想法吗?

推荐答案

我只是遇到了同样的问题.由于某种原因,我的网址在"https"之前有一种空白.在URL字符串上使用trim()解决了该问题.

I just had the same problem. For some reason, my url had one kind of white space before the "https". Using trim() on the url String solved the problem.

这篇关于使用DownloadManager下载HTTP/HTTPS URI的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆