DownloadManager удаляет файл по завершении

У меня есть приложение, которое загружает файлы с помощью Android DownloadManager в папку на внешнее хранилище файлов (SD-карта). Обычно это работает нормально, но есть некоторые источники, из-за которых 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 из DownloadManager:

/mnt/sdcard/Podcatcher/Feeds/19/225.mp3

Большинство файлов в порядке и сохраняются после загрузки, но не в этом случае. Любые идеи о том, как я могу заставить DownloadManager покинуть файл после его загрузки?

РЕДАКТИРОВАТЬ: я не упомянул, что когда я использую автономный диспетчер загрузки при загрузке этого файла из браузера, он сообщает об ошибке в конце загрузки. Возможно, мое единственное решение - загрузить его с нуля, без DownloadManager?


person Jeffrey Fate    schedule 02.06.2012    source источник
comment
Может быть, попробовать dm.query() и проверить столбцы COLUMN_STATUS и COLUMN_REASON на возможные ошибки?   -  person Andrey Ermakov    schedule 03.06.2012
comment
Я делаю это каждый раз, когда проверяю статус и соответствующим образом обновляю базу данных. Я не вижу ничего, кроме 0, к сожалению. Из-за этого то, что мне кажется ошибкой в ​​​​DownloadManager, я думаю, что мне придется отказаться от его использования, чтобы убедиться, что все загружено. Я еще не пробовал это с нуля, но я посмотрю, будет ли в конце такой же сбой.   -  person Jeffrey Fate    schedule 03.06.2012
comment
Извините, я имел в виду 0 по причине. Статус 8 (успешно), когда загрузка завершена.   -  person Jeffrey Fate    schedule 03.06.2012


Ответы (1)


попробуйте, пожалуйста, следуйте коду - у меня сработало:

request.setMimeType(application/octet-stream);
person Roman Kazanovskyi    schedule 27.11.2012