Android P, загрузка не начинается с помощью диспетчера загрузки?

Я пытаюсь загрузить файлы с помощью диспетчера загрузки, и загрузка, кажется, не начинается на Android P (работает на эмуляторе). Он отлично работает на Android Oreo и Android Marshmallow. Вот код

DownloadManager.Request downloadRequest = new DownloadManager.Request(Uri.parse(URLS.URLforDownloadingFileData(fileName)));
        File file = new File(mobileInfo.getExternalFileStorageDirectory(),fileName);
        downloadRequest.setDestinationUri(Uri.fromFile(file));
        downloadRequest.setTitle(titleOfDownload);
        downloadRequest.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE | DownloadManager.Request.NETWORK_WIFI);
        downloadManager.enqueue(downloadRequest);

Есть идеи, почему это может происходить и как решить эту проблему? Какое-то отношение к изменениям, внесенным в Android P?

1 ответ

Похоже, вы определили NetworkSecurityPolicy для загрузки хоста URL. Вы можете проверить это, создав XML res/xml/network_security_config.xml:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

А затем ссылайтесь на этот файл в теге Application внутри вашего AndroidManifest.xml:

android:networkSecurityConfig="@xml/network_security_config"

Если это работает - настоятельно рекомендуется разрешить трафик не для всех хостов, а только для необходимых.

Другие вопросы по тегам