download HTTP/HTTPS URIs with DownloadManager

匿名 (未验证) 提交于 2019-12-03 01:39:01

问题:

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

Android Version: 4.0+
here's my code:

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

And my url is https://static.test.com/downloads/xxx.apk

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) 

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;     } 

Any ideas?

回答1:

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.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!