У меня есть приложение, которое загружает файлы с помощью 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?
dm.query()
и проверить столбцыCOLUMN_STATUS
иCOLUMN_REASON
на возможные ошибки? - person Andrey Ermakov   schedule 03.06.2012