我正在尝试使用下载管理器下载文件,但下载似乎无法在 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 中引入的更改有什么关系?
最佳答案
好像你定义了NetworkSecurityPolicy用于下载网址主机。
您可以通过创建 XML res/xml/network_security_config.xml
来检查它:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
然后在 AndroidManifest.xml 的 Application 标签中引用这个文件:
android:networkSecurityConfig="@xml/network_security_config"
如果有效 - 强烈建议不要允许所有主机的流量,但只允许需要的流量。
关于java - Android P,下载没有开始使用下载管理器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50286117/