Android: загрузить файл программно с помощью браузера

#android #download

#Android #Скачать

Вопрос:

В моем приложении есть строка, содержащая URL-адрес файла, обычно что-то вроде документа Word или файла PDF. Я хочу предоставить пользователю способ загрузить файл таким же образом, как если бы они нажали на ссылку в браузере (позволяя браузеру сохранять его в расположении по умолчанию и т.д.).

На данный момент я делаю это, запуская намерение ACTION_VIEW. В большинстве случаев это работает, но с этим связано несколько проблем. Часто окно браузера пытается отобразить сообщение, которое по какой-то причине немедленно исчезает и не может быть прочитано. Иногда загрузка завершается неудачно, и я не могу это обнаружить. Если это удастся, все, что пользователь действительно видит, это маленький значок в верхней строке состояния, который он должен знать, чтобы искать.

Есть ли лучший способ сделать это? Какой-нибудь способ запустить специальное действие ЗАГРУЗКИ вместо вызова всего браузера?

Могу ли я сам загрузить файл в своем собственном коде, а затем каким-то образом заставить его оказаться в том же месте, как если бы браузер загрузил его?

Спасибо.

Ответ №1:

Вы можете загрузить его с вашим собственным кодом и поместить в Download folder на SD-карте. В качестве альтернативы вы могли бы использовать DownloadManager доступный в API 9 и выше.

Комментарии:

1. Спасибо. Гарантировано ли существование папки загрузки на всех устройствах? Как мне получить или выразить путь к нему?

2. Это описано в документации SDK, указанной выше (первая ссылка)

3. Папка для загрузки не будет существовать на каждом устройстве, но вы можете ее создать. Обычно туда помещают разные загруженные файлы.