java - Android P,下载没有开始使用下载管理器?

标签 java android android-8.0-oreo android-9.0-pie

我正在尝试使用下载管理器下载文件,但下载似乎无法在 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/

相关文章:

android - Flutter 将 Uint8List 传递给 iOS Objective-c

android - java.lang.IllegalStateException : Not allowed to start service Intent (from Activity onCreate)

Android 26 (O) 通知不显示操作图标

java - 将类从 Maven 依赖项加载到我的 ClassLoader

java - sql server 存储过程,无法在 java 中返回结果集

java - 检查输入以查看 Java 中的输入是否为 double

java - 如何设置有限的通用返回类型

java - 如何在安卓上创建放大镜

android - 三星 s3 EditText.setText() 挂起 UI

android - 持续聆听 Oreo 播放的音乐