Java android文件下载在pie版本中不起作用

Java android文件下载在pie版本中不起作用,java,android,Java,Android,我正在实施下载选项,以便在我的应用程序中下载上载的文件。问题是,我可以下载除pie版本以外的所有移动版本的文件。当我尝试在pie移动版本中下载时,该文件不会下载。如果不知道您遇到的确切异常/错误,就无法帮助您,但是看看你的URL,我猜问题出在http上 从API级别28-Android 9 PIE开始,默认情况下,所有web请求都必须是安全的。 如果您试图访问不以https开头的URL,而没有在清单中明确列出它,您将得到一个错误 如何将域列入白名单或完全禁用此功能 另外,我建议您查看Androi

我正在实施下载选项,以便在我的应用程序中下载上载的文件。问题是,我可以下载除pie版本以外的所有移动版本的文件。当我尝试在pie移动版本中下载时,该文件不会下载。

如果不知道您遇到的确切异常/错误,就无法帮助您,但是看看你的URL,我猜问题出在http上

从API级别28-Android 9 PIE开始,默认情况下,所有web请求都必须是安全的。 如果您试图访问不以https开头的URL,而没有在清单中明确列出它,您将得到一个错误

如何将域列入白名单或完全禁用此功能

另外,我建议您查看Android Pie的主要更改列表

 public class DownloadFile extends AsyncTask<Void, Void, Void> {
        String str_id, str_docName;
        public DownloadFile(String id, String docName) {
            str_id = id;
            str_docName = docName;
        }
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }
        @Override
        protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);
            Toast.makeText(mContext, "Downloading..", Toast.LENGTH_SHORT).show();
        }
        @Override
        protected Void doInBackground(Void... voids) {
            String url1 = "http://pap.india.com/API/s3_file_download?gid=" + str_id + "&filename=" + str_docName + "&type=icfo";

            downloadFile(url1);
            return null;
        }
    }

    private void downloadFile(String urlString) {
        dManager = (DownloadManager) mContext.getSystemService(Context.DOWNLOAD_SERVICE);
        if (!urlString.equals("")) {
            try {
                String fileName = urlString.substring(urlString.lastIndexOf("/") + 1);
                DownloadManager.Request request = new DownloadManager.Request(
                        Uri.parse(urlString));
                request.setDescription("Download" + fileName + " from "
                        + urlString);
                request.setTitle("DownloadManager" + file_name);
                request.allowScanningByMediaScanner();
                request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);

                final File dir = new File(Environment.getDownloadCacheDirectory(), "sample");
                if (!dir.exists()) {
                    dir.mkdirs();
                }
                request.setDestinationUri(Uri.parse("file://"
                        + Environment.getExternalStorageDirectory()
                        + "/sample/" + fileName));

//                request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "sample.pdf");

                long did = dManager.enqueue(request);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

    }