Менеджер загрузок Android.статус всегда в ожидании - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь использовать Download Manager для загрузки некоторых файлов с определенного URL, но запрос на загрузку так и не был выполнен.

Таким образом, я регистрирую некоторую информацию, чтобы увидеть, что пошло не так, оказывается, что запрос всегда находится в состоянии ожидания, а COLUMN_REASON - это 0, который не смог найти соответствующее описание в документе.

COLUMN_STATUS: 1
COLUMN_REASON: 0
COLUMN_TOTAL_SIZE_BYTES: -1
COLUMN_BYTES_DOWNLOADED_SO_FAR: 0

Вот как начать загрузку.

val req = DownloadManager.Request(uri).apply {
    addRequestHeader("Cookie", cookie)
    allowScanningByMediaScanner()
    setTitle(fullname)
    setDescription(/* description text */)
    setDestinationInExternalFilesDir(context, Environment.DIRECTORY_DOWNLOADS, fullname)
}
val downloadId = downloadManager.enqueue(req)

И информация журнала для отладки.

        val filterQuery = DownloadManager.Query().setFilterById(downloadId)
        val cursor = downloadManager.query(filterQuery)
        if (cursor.moveToFirst()) {
            val total = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_TOTAL_SIZE_BYTES))
            val current = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR))
            val status = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS))
            val reason = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_REASON))

            Log.d("App", "status: " + status.toString())
            Log.d("App", "reason: " + reason.toString())
            Log.d("App", "total: " + total.toString())
            Log.d("App", "current: " +  current.toString())
        }

Так какова возможная причина этого состояния запросавсегда находился в ожидании, и как мне отладить его?

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 21 декабря 2018

В моем случае, настройки VPN, похоже, решают эту проблему.Похоже, что службы Google были заблокированы в моей сети, и после того, как я настроил системный глобальный VPN, проблема исчезла.

...