Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
DownloadManager java.lang.IllegalArgumentException_Java_Android_Download Manager - Fatal编程技术网

DownloadManager java.lang.IllegalArgumentException

DownloadManager java.lang.IllegalArgumentException,java,android,download-manager,Java,Android,Download Manager,一个用户向我发送了以下错误: 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 即使我使用以下代码: Appli

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

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
    }

文件名的值是多少?它应该是ExternalPublicDir中的一个子路径。您找到原因了吗?我也有同样的问题。