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"
Если это работает - настоятельно рекомендуется разрешить трафик не для всех хостов, а только для необходимых.