简体   繁体   English

使用下载管理器下载文件

[英]Download file using Download manager

I'm trying to download file from dropbox.when I try download this Url https://www.dropbox.com/s/zf68ylazusvpnga/Cir_IMG-10-20181025145334.jpg?raw=1 ,App is crashing I'm getting this error 我正在尝试从dropbox下载文件。当我尝试下载此网址https://www.dropbox.com/s/zf68ylazusvpnga/Cir_IMG-10-20181025145334.jpg?raw=1时 ,应用程序崩溃了错误

java.lang.IllegalArgumentException: Can only download HTTP/HTTPS URIs: "https://www.dropbox.com/s/zf68ylazusvpnga/Cir_IMG-10-20181025145334.jpg?raw=1"
    at android.app.DownloadManager$Request.<init>(DownloadManager.java:436)
    at com.valai.school.adapter.ImageMessageViewHolder.downloadImageFile(ImageMessageViewHolder.java:140)
    at com.valai.school.adapter.ImageMessageViewHolder.access$000(ImageMessageViewHolder.java:43)
    at com.valai.school.adapter.ImageMessageViewHolder$2.onClick(ImageMessageViewHolder.java:124)
    at android.view.View.performClick(View.java:4856)
    at android.view.View$PerformClick.run(View.java:19956)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:211)
    at android.app.ActivityThread.main(ActivityThread.java:5371)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:945)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:740)

Here is my code: 这是我的代码:

DownloadManager.Request request = new DownloadManager.Request(Uri.parse(message.getAttachmentURL().trim()));
    request.setAllowedNetworkTypes(
            DownloadManager.Request.NETWORK_WIFI
                    | DownloadManager.Request.NETWORK_MOBILE)
            .setAllowedOverRoaming(false);
    request.setDestinationInExternalFilesDir(context, imageFolderPath, fileName);
    final DownloadManager manager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
    final long downloadId = manager.enqueue(request);
String url = "https://www.dropbox.com/s/zf68ylazusvpnga/Cir_IMG-10- 
20181025145334.jpg?raw=1";
DownloadManager.Request request = new 
DownloadManager.Request(Uri.parse(url.trim()));
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI
| DownloadManager.Request.NETWORK_MOBILE).setAllowedOverRoaming(false);
request.setDestinationInExternalFilesDir(this, "/images", "sample");
final DownloadManager manager = 
(DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE);
final long downloadId = manager.enqueue(request);
Log.d(SO, " download id " + downloadId);`

Working for me. 为我工作。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM