У меня есть приложение, которое загружает файлы с помощью Android DownloadManager в папку на внешнем хранилище файлов (SD-карта). Это нормально работает нормально, но есть некоторые источники, которые заставляют DownloadManager удалять файл, когда он завершает его загрузку. Хороший пример исходного файла:DownloadManager удаляет файл при завершении
http://traffic.libsyn.com/hdtvpodcast/HDTV-2012-06-01.mp3
Похоже, может быть, проблема только с файлами из libsyn.com, но я не уверен. Я искал способы изменить способ загрузки DownloadManager для сохранения файлов, но не может найти никаких параметров в классе.
Это где я епдиеий в URL для скачивания:
request = new Request(Uri.parse(currUrl));
external = Uri.fromFile(externalFile);
request.setDestinationUri(external);
request.setVisibleInDownloadsUi(false);
request.setNotificationVisibility(
DownloadManager.Request.VISIBILITY_HIDDEN);
currDownloadId = dm.enqueue(request);
Местоположение файлов создается с помощью этого:
Environment.getExternalStorageDirectory().getAbsolutePath() +
File.separator + "Podcatcher" + File.separator + "Feeds" + File.separator +
[int] + File.separator + [int] + [string extension];
Который оказывается что-то вроде этого, когда я запрашиваю DownloadManager.COLUMN_LOCAL_FILENAME column from DownloadManager:
/mnt/sdcard/Podcatcher/Feeds/19/225.mp3
Основная часть файла s прекрасны и сохраняются после загрузки, но не в этом случае. Любые идеи о том, как я могу заставить DownloadManager оставить файл после его загрузки?
EDIT: Я забыл упомянуть, что при использовании автономного диспетчера загрузки при загрузке этого файла из браузера, который он сообщает, не удалось в конце загрузки. Возможно, мое единственное решение - загрузить его с нуля, без DownloadManager?
Может быть, попробовать 'dm.query()' и проверить '' COLUMN_STATUS' и COLUMN_REASON' столбцы для возможных ошибок? –
Я делаю это каждый раз, когда проверяю статус и соответствующим образом обновляю базу данных. К сожалению, я не вижу ничего, кроме 0. Из-за этого, что кажется ошибкой в DownloadManager для меня, я думаю, что мне нужно будет использовать его, чтобы все было загружено. Я еще не пробовал это с нуля, но я посмотрю, имеет ли тот же самый отказ в конце. –
Извините, я имел в виду 0 по причине. Состояние «8» (успешное), когда загрузка «завершается». –