无法从downloadManager Android 6.0 Marshmallow打开下载的文件

时间:2016-10-08 08:31:34

标签: android android-studio android-6.0-marshmallow

我将网站加载到WebView中,然后使用“下载管理器”从我的网站下载照片文件。文件已成功下载,我可以在内部存储/下载中找到该文件。

我使用Environment.DIRECTORY_DOWNLOAD将文件存储到Download Directory,这是我下载文件的完整代码:

webView.setDownloadListener(new DownloadListener() {
        @Override
        public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimeType, long contentLength) {
            if(isStoragePermissionGranted()) {
                DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));

                request.setMimeType(mimeType);
                //------------------------COOKIE!!------------------------
                String cookies = CookieManager.getInstance().getCookie(url);
                request.addRequestHeader("cookie", cookies);
                //------------------------COOKIE!!------------------------
                request.addRequestHeader("User-Agent", userAgent);
                request.setDescription("Downloading file...");
                request.setTitle(URLUtil.guessFileName(url, contentDisposition, mimeType));
                request.allowScanningByMediaScanner();
                request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
                request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOAD, URLUtil.guessFileName(url, contentDisposition, mimeType));

                DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
                dm.enqueue(request);
                Toast.makeText(getApplicationContext(), "Downloading File", Toast.LENGTH_LONG).show();
            }
        }
    });

但是当我打开我的画廊照片时,我无法打开照片。点击照片时会显示“无法打开”。我检查文件详细信息,文件路径参考/ storage / emulated / 0 / Download。

为什么我的图库中的图像文件路径显示不同的路径?以及如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

没有常数Environment.DIRECTORY_DOWNLOAD

您应该设置Environment.DIRECTORY_DOWNLOADS

还有更具体的选项,如:Environment.DIRECTORY_PICTURES。它适用于图像下载。

文档中描述了完整列表:https://developer.android.com/reference/android/os/Environment.html