6

in my app i'm starting download via DownloadManager:

val downloadId: Long = downloadManager.enqueue(dr)

If user reopenning application, i'm checking downloading status via:

fun isDownloadInProgress(): Boolean {
    val dq: DownloadManager.Query = DownloadManager.Query()
    dq.setFilterById(downloadId)
    val cursor: Cursor? = downloadManager.query(dq)
    if (cursor == null || !cursor.moveToFirst()) {
        return false
    }
    val status: Int = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS))
    if (status == DownloadManager.STATUS_RUNNING || status == DownloadManager.STATUS_PENDING) {
        return true
    }
    return false
}

With this code I have some crashes in my Crashlytics dash on Xiaomi with 11 and 12 Android versions:

Caused by java.lang.IllegalArgumentException: column local_filename is not allowed in queries
       at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:172)
       at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:142)
       at android.content.ContentProviderProxy.query(ContentProviderProxy.java:481)
       at android.content.ContentResolver.query(ContentResolver.java:1219)
       at android.content.ContentResolver.query(ContentResolver.java:1151)
       at android.content.ContentResolver.query(ContentResolver.java:1107)
       at android.app.DownloadManager$Query.runQuery(DownloadManager.java:1506)
       at android.app.DownloadManager.query(DownloadManager.java:1736)
       at android.app.DownloadManager.query(DownloadManager.java:1718)

It throw when i call val cursor: Cursor? = downloadManager.query(dq) because under the hood query() method of DownloadManager calls query(query, UNDERLYING_COLUMNS); and UNDERLYING_COLUMS contains DownloadManager.COLUMN_LOCAL_FILENAME column.

This column is deprecated after API 24, but DownloadManager is still using this column under the hood.

My questions is:

  1. If am i using DownloadManager incorrect and there is another way for check download status, can someone suggest how to do this?
  2. If is this a bug on Xiaomi ROM, can someone give me the link on issue?

Thanks.

2

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.