下载管理器返回的Android 9.0下载失败

Ehs*_*sdi 6 android android-download-manager android-9.0-pie

我正在使用下载管理器从互联网下载文件。下载已在Android 6、8.1中成功完成,但在Android 9.0中未成功完成

DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
request.setDescription("Downloading...");
request.setTitle(nameOfFile);
request.setMimeType("application/pdf");
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS + "/CPG", nameOfFile);
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
queueId = manager.enqueue(request);
Run Code Online (Sandbox Code Playgroud)

Ehs*_*sdi 6

我通过这里找到了解决方案:如何解决 Android P DownloadManager 因“不允许明文 HTTP 流量到 127.0.0.1”而停止?

简而言之,我只需要执行以下操作:

1.创建res/xml/network_security_config.xml,然后添加

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>
Run Code Online (Sandbox Code Playgroud)

2. 在清单文件中,在应用程序标签中引用它

android:networkSecurityConfig="@xml/network_security_config"
Run Code Online (Sandbox Code Playgroud)

有关更多信息,可以在这里阅读:https : //developer.android.com/training/articles/security-config#CleartextTrafficPermitted


Qui*_*ner 5

这个标签对我有用

 android:usesCleartextTraffic="true"
Run Code Online (Sandbox Code Playgroud)

将此标签添加到应用程序

 <application
        android:name=".ApplicationClass"
        android:allowBackup="true"
        android:hardwareAccelerated="false"
        android:usesCleartextTraffic="true"
Run Code Online (Sandbox Code Playgroud)

解决方案2)

创建一个XML res/xml/network_security_config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>
Run Code Online (Sandbox Code Playgroud)

在标签应用里面 AndroidManifest.xml

android:networkSecurityConfig="@xml/network_security_config"
Run Code Online (Sandbox Code Playgroud)

下载Manger在Android Pie 9.0(Xiaomi mi A2)中不起作用