как использовать колонки DownloadManager - PullRequest
0 голосов
/ 01 июня 2018

Мне интересно, как использовать DownloadManager столбцы, такие как COLUMN_ID, потому что это дает мне постоянное значение, когда я использую его напрямую Я новичок в программировании Android (c # background), поэтому мне нужна небольшая помощь с некоторыми основамиВ Android я прочитал руководство для разработчиков Android, но в нем нет примеров, поэтому оно бесполезно
Я скучаю по руководству по C #; (
это мой код:

fun download(url: String, name: String) {
    //start download request
    var request = DownloadManager.Request(Uri.parse(url))
    request.setVisibleInDownloadsUi(true)
    request.allowScanningByMediaScanner()
    request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED)
    request.setDestinationInExternalPublicDir("a destination", "$name.pdf")
    // get download service and enqueue file
    val manager = getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager
    manager.enqueue(request)
    var x = (DownloadManager.COLUMN_ID)
    Toast.makeText(applicationContext,x ,Toast.LENGTH_SHORT).show()
    //or 
    //var x = (DownloadManager.COLUMN_TOTAL_SIZE_BYTES)
    //Toast.makeText(applicationContext,x ,Toast.LENGTH_SHORT).show()
}

Текст тоста был:

_id (for COLUMN_ID)             
total_size(for COLUMN_TOTAL_SIZE_BYTES)

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Этот ответ на Java, вам необходимо изменить его.

Запросить у менеджера загрузки информацию о запрошенных загрузках.

Cursor cursor = downloadManager.query(ImageDownloadQuery);
if (cursor.moveToFirst()) {
    Download(cursor, Image_DownloadId);
}

private void Download(Cursor cursor, long DownloadId) {

        //column for download  columnId
        int columnIndex = cursor.getColumnIndex(DownloadManager.COLUMN_ID);
        int columnId = cursor.getInt(columnIndex);
        Log.d("Tag", "columnId " +columnId);
}
0 голосов
/ 01 июня 2018

После того, как вы получите широковещательную рассылку с идентификатором загрузки, вы можете использовать этот идентификатор для получения сведений, связанных с загрузкой.В вашем приемнике вещания вы получаете идентификатор загрузки, подобный этому intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID.Вы берете этот идентификатор и запрашиваете менеджер загрузок.

    DownloadManager.Query query = new DownloadManager.Query();
    query.setFilterById(downloadId);
    Cursor cursor = downloadManager.query(query);

Как только вы получите курсор, вы можете запустить цикл следующим образом.

     if (cursor.moveToFirst()) {
        if (cursor.getCount() > 0) {

            int statusOfTheDownload = cursor.
        getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS));
            String fileUri = cursor.
        getString(cursor.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI));

        }
    }
...