gpt4 book ai didi

android - 如何使用 DownloadManager 列

转载 作者:行者123 更新时间:2023-11-29 23:53:21 24 4
gpt4 key购买 nike

我想知道如何使用像 COLUMN_ID 这样的 DownloadManager 列,因为当我直接使用它时,它会给我一个常量值我是 android 编程的新手(c# 背景)所以我需要一些 android 基础知识的帮助,我已经阅读了 android 开发人员指南但是它缺少示例所以它毫无值(value)
我想念 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()
}

Toast 文本是:

_id (for COLUMN_ID)             
total_size(for COLUMN_TOTAL_SIZE_BYTES)

最佳答案

一旦您收到带有下载 ID 的广播,您就可以使用该 ID 获取与下载相关的详细信息。在您的广播接收器中,您会获得像这样的下载 ID intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID。您获取此 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));

}
}

关于android - 如何使用 DownloadManager 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50642277/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com