2015-02-10 186 views
1

我使用Google搜索并找到了一些相关信息。但是这并没有帮助。使用DownloadManager下载HTTP/HTTPS URI

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

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

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

方案为https,但我仍然得到一个错误:

02-10 11:18:23.710 E/AndroidRuntime(7550): java.lang.RuntimeException: Unable to start service [email protected] 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.Request代码:

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

任何想法?

回答

1

我刚刚有同样的问题。出于某种原因,我的网址在“https”之前有一种空白区域。使用url上的trim()解决了问题。

+0

我们有同样的问题。 – 2015-09-18 01:58:53

+0

@EIYeante 同样的问题在Galaxy S4上,但修剪()没有解决问题... PLease帮助 – Balflear 2017-06-09 14:35:18

相关问题