下载管理器下载文件,然后声明PAUSED_WAITING_FOR_NETWORK

时间:2019-04-03 23:49:37

标签: android android-download-manager

下载管理器将成功发出GET请求,电话将成功通过网络接收数据,但是下载管理器将永远处于PAUSED_WAITING_FOR_NETWORK状态。

  • 从Chrome直接下载成功

  • 从Opera中直接下载成功

  • 验证了当客户端(电话)和服务器(树莓派)都连接到可以访问Internet的wifi路由器时,代码可以正常工作

  • 已验证当电话直接连接到raspberry pi的无线访问点并且raspberry pi无法访问互联网时,相同的代码不起作用

  • 验证已发出GET请求(tPacketCapture以及服务器日志)

  • 验证请求是否成功(服务器日志)

  • 已验证手机正在下载数据时发送acks(tPacketCapture)

  • 将电话切换到可以访问Internet的wifi网络后,下载管理器醒来,开始尝试下载文件。当然,它失败并出现404错误,因为找不到目标IP地址(10.43.1.1)。

  • 通过query()命令验证了PAUSED_WAITING_FOR_NETWORK状态

  • Android版本Oreo

下载管理器请求

DownloadManager.Request request = new DownloadManager.Request(uri)
                    .setTitle(filename)
                    .setDescription("Downloading from target")
                    .setNotificationVisibility(
                            DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED)
                    .setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, obcFilename)
                    .setRequiresCharging(false);

            long downloadId = downloadManager.enqueue(request);

如果我认为下载管理器认为缺乏网络访问权限,可能不会尝试下载。真正令人困惑的是,它实际上执行了下载,然后声称它缺乏网络连接。

0 个答案:

没有答案