繁体   English   中英

DownloadManager java.lang.IllegalArgumentException

[英]DownloadManager java.lang.IllegalArgumentException

一位用户向我发送了以下错误:

java.lang.IllegalArgumentException: Unknown URL content://downloads/my_downloads
at android.content.ContentResolver.insert(ContentResolver.java:860)
at android.app.DownloadManager.enqueue(DownloadManager.java:904)
at 

即使我使用以下代码:

ApplicationInfo ai = null;//Check if download manager is enabled
        try {
            ai = this.getPackageManager().getApplicationInfo("com.android.providers.downloads",0);
        } catch (NameNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

         appStatus = ai.enabled;

用户尝试下载时

                if(appStatus=false){
                        //  Download manager not available.....
                    }           
                    else {
    //filename=String
    String fileName=URLUtil.guessFileName(url,contentDisposition,mimetype); 

request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName);
                    request.setDescription(fileName);      
                    manager.enqueue(request); 
                    }

我做错了什么?

原因很简单:用户已“停用”下载管理器。 您可以通过以下方法执行此操作:进入“设置”>“应用程序”>“所有应用程序”,然后选择“下载管理器”,然后点击“禁用”。

我经常在这样的代码中检查它

    try {
        download.downloadManagerId = systemDownloadManager.enqueue(request)
        download.state = DownloadState.DOWNLOADING
    } catch (e:IllegalArgumentException) {
        result.state = DownloadMagerResult.STATE.NOMANAGER
        return result
    }

暂无
暂无

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

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