当前位置: 首页 > 知识库问答 >
问题:

DownloadManager不适用于android 8.0

阮健
2023-03-14

DownloadManager在Android 8.0上不工作。我不知道为什么。有人能帮我吗?

这就是我尝试过的:

val downloadBroadcastReceiver = DownloadBroadcastReceiver()
context.registerReceiver(downloadBroadcastReceiver, IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE))
request = DownloadManager.Request(Uri.parse(url))
val mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(MimeTypeMap.getFileExtensionFromUrl(folder + File.separator + fileName))
request.setMimeType(mimeType)
request.setDestinationInExternalFilesDir(context, Environment.DIRECTORY_DOWNLOADS, fileName)
request.setTitle(title)
request.setDescription(description)
request.setNotificationVisibility(VISIBILITY_VISIBLE_NOTIFY_COMPLETED)
request.allowScanningByMediaScanner()
id = downloadManager.enqueue(request)

共有2个答案

万俟棋
2023-03-14

通过检查DownloadManager中的状态,可以缩小问题类型。如果下载未开始,则可能已暂停。

 try (Cursor cursor = manager.query(query)) {
                if (cursor.moveToFirst()) {
                    int statusColumn = cursor.getColumnIndex(DownloadManager.COLUMN_STATUS);
                    int downloadStatus = cursor.getInt(statusColumn);
                    if (DownloadManager.STATUS_PAUSED == downloadStatus) {
                        int reasonColumn =   cursor.getColumnIndex(DownloadManager.COLUMN_REASON);
                        int reasonCode = cursor.getInt(reasonColumn);
                        Log.e(TAG, "Download paused: " + reasonCode);
                    } else if (DownloadManager.STATUS_SUCCESSFUL == downloadStatus
                            || DownloadManager.STATUS_FAILED == downloadStatus) {
                        Log.i(TAG, "Download Ended");
                    }
}

从那里开始,问题取决于你在上面的块中看到了什么,但是这里有一些你可能遇到的常见情况:

如果您的url使用的是https://,您可能会遇到此问题-为什么https下载会暂停并暂停等待重试?

如果您的url使用的是http://而不是Android 9,您可能会看到:明文http流量达到192.168。1.2不允许

如果你的网址是超文本传输协议://在Android 9,你会看到这个:如何解决Android P DownloadManager停止与"Cleartext HTTP流量127.0.0.1不允许"?不幸的是,这是由谷歌错误https://issuetracker.google.com/issues/114143692造成的。唯一的方法是提供一个https:替代方案。

樊熠彤
2023-03-14

确保手机上没有启用任何VPN应用程序。在我的情况下,我有一个广告拦截器应用程序帽作为VPN在手机上运行,干扰了DownloadManager。

 类似资料:
  • 问题内容: 嗨,我只是简单地尝试在www.example.com上获取h1标签,该标签显示为“ Example Domain”。该代码适用于http://www.example.com,但不适用于https://www.exmaple.com。我该如何解决这个问题?谢谢 问题答案: PhantomJSDriver不支持(所有)DesiredCapabilities。 你会需要: 记录在这里:htt

  • 所以我使用这种方法写入文件,它在windows上运行完全正常,但在mac上运行时,它会创建文件,但它们是空的。 我知道数据是正确的,因为它打印正确。感谢您的任何帮助,这真的让我绊倒了。

  • 基于ASIHTTP 的多线程下载管理功能模块,支持异步下载、暂停和恢复下载等等功能。暂停某个下载任务,再次恢复该下载任务时,不会重头下载,而是在已下载的地方开始下载。具体有如下特色: 1. 完整的UI设计,可直接拿来使用; 2. 异步,后台,多线程(ASI提供); 3. 最大同时下载数设置; 4. 下载任务排队,暂停,等待,继续,删除某个下载任务; 5. 记录下载的未完成和已完成任务,并在下次启动

  • 列名称的类型为int[] 上述查询适用于postgresql,但不适用于hsqldb,甚至适用于sql 尝试的hsqldb版本:2.2.9和2.3.0 在hsqldb中工作的sql是从table_name中选择x,unnest(column_name)y(x)x和y不是该表的列。

  • 我能够成功地打电话给邮递员: /mfp/api/az/v1/token和 /mfpadmin/management-apis/2.0/runtimes/mfp/applications 我正在获取从/mfp/api/az/v1/token接收的承载令牌,并将其添加到/mfp/applications的授权标头中。 我收到了来自两者的200个响应,并从每个API中获取了预期的信息。 然后,我选择从P

  • 我一直在使用声纳3.2 同样的配置,当我升级到SonarQube 4.4时 声纳项目属性: 请帮助整理这些例外 问候, KP