2

我正在为我构建一个后备,DownloadManager它将重新启动失败的下载。

我坚持使用vogella 的示例构建我的下载管理器功能。

if (c.moveToFirst()) {
int columnIndex = c.getColumnIndex(DownloadManager.COLUMN_STATUS);

...

} else if (DownloadManager.STATUS_FAILED == c.getInt(columnIndex)) { 

         colIndex = c.getColumnIndex(DownloadManager.COLUMN_LOCAL_FILENAME);
         String localFilename = c.getString(colIndex);

}

“失败”案例正在工作,但我的localFilename变量是null.

顺便说一句:COLUMN_URI正在工作。

有什么想法可以访问目标/本地路径或文件名吗?

4

2 回答 2

5

DownloadManager.COLUMN_LOCAL_FILENAME 字段从 API 11 开始工作,因此如果您使用较旧的 API,colIndex 将为 -1,这将导致 localFilename 字符串为空。

如果您只想从 URI 中获取路径

String path = Uri.parse(cursor.getString(cursor.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI))).getPath()
于 2013-10-10T12:59:30.773 回答
4

由于下载失败,本地文件名为空。没有本地文件可供参考。

参照。文档DownloadManager.html#getUriForDownloadedFile(强调添加):

如果文件下载成功,则返回给定下载文件 id 的 Uri 。否则,返回 null

于 2014-02-18T20:24:08.000 回答