Как использовать DownloadManager на Android 10? - PullRequest
2 голосов
/ 26 марта 2020

Я хочу использовать DownloadManager на Android 10 для загрузки файлов, и появится панель уведомлений о ходе загрузки.

Я использую следующий код, который обычно можно использовать на устройствах с Android 9 но не в эмуляторе Android 10 (не появляется сообщение об ошибке исключения). Панель уведомлений о ходе загрузки не отображается на панели уведомлений, но я заметил, что этот файл появился в приложении «Файлы» системы и не был загружен, поскольку его необработанный размер (в байтах) всегда равен -1.

Как я могу изменить свой код, чтобы его можно было использовать на Android 10, большое спасибо!

        var request = DownloadManager.Request(Uri.parse(downloadUrl))
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
            request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, saveName)
        } else {
            request.setDestinationInExternalFilesDir(context, Environment.DIRECTORY_DOWNLOADS, saveName)
        }
        request.setAllowedNetworkTypes(
            DownloadManager.Request.NETWORK_MOBILE or DownloadManager.Request.NETWORK_WIFI
        )
        request.setNotificationVisibility(
            DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED
        )
        request.setTitle("TEST")
        request.setDescription("TEST")
        downloadManager.enqueue(request)

Снимок экрана системного приложения "Файл"

Снимок экрана системного приложения "Файл" 2

1 Ответ

0 голосов
/ 31 марта 2020

По результатам теста эта проблема может быть ошибкой в ​​симуляторе, потому что я не тестировал эту проблему на реальных устройствах (Samsung s10, Samsung note9, Xiaomi 8, Google nexus6P), но у меня больше нет реальных устройств, Так что, если у вас есть эта проблема с другими реальными устройствами, пожалуйста, дайте мне знать.

...