我正在为我的DownloadManager
构建一个后备版,它将重新启动失败的下载。
我坚持vogella's示例构建我的下载管理器功能。
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
。
BTW:COLUMN_URI
正在运作。
我是如何访问目标/本地路径或文件名的?
答案 0 :(得分:5)
DownloadManager.COLUMN_LOCAL_FILENAME字段自API 11起作用,因此如果您使用较旧的API,则colIndex将为-1,这将导致localFilename String为null。
如果你想从URI获取路径
String path = Uri.parse(cursor.getString(cursor.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI))).getPath()
答案 1 :(得分:4)
本地文件名为空,因为下载失败。没有本地文件可供参考。
比照。 DownloadManager.html#getUriForDownloadedFile
的文件(重点补充):
如果文件下载成功,则返回给定下载文件ID的Uri,。否则,返回null 。