Android Скачать Intent - PullRequest
       36

Android Скачать Intent

31 голосов
/ 08 февраля 2009

Мне было интересно, какова цель загрузки URL-адресов? В браузере он будет загружать вещи с небольшим значком уведомления. Мне было интересно, смогу ли я использовать это намерение (и что это такое).

Ответы [ 4 ]

66 голосов
/ 27 января 2012

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

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

Вот как вы можете скачать URI:

DownloadManager.Request r = new DownloadManager.Request(uri);

// This put the download in the same Download dir the browser uses
r.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "fileName");

// When downloading music and videos they will be listed in the player
// (Seems to be available since Honeycomb only)
r.allowScanningByMediaScanner();

// Notify user when download is completed
// (Seems to be available since Honeycomb only)
r.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);

// Start download
DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
dm.enqueue(r);

Существует множество других опций для настройки уведомления, запроса состояния загрузки и задания местоположения загрузки.

В этом блоге показано, как использовать менеджер загрузок в предыдущих версиях Android с помощью скрытых API.

18 голосов
/ 30 мая 2010

Хотя я не верю, что в браузере есть намерение загрузки, вы, вероятно, можете использовать обычное ACTION_VIEW намерение, и браузер решит, следует ли ему загружать или просматривать URL-адрес в зависимости от типа контента. *

Так из вашего кода триггер

new Intent(Intent.ACTION_VIEW, Uri.parse(url))

и надеюсь, что это приведет к загрузке в браузере.

2 голосов
/ 08 февраля 2009

Что вы пытаетесь сделать? Если ваше приложение хочет загрузить файл, вы можете использовать код UrlConnection. Если вы хотите загрузить пакет, ACTION_PACKAGE_INSTALL должен делать то, что вы хотите.

0 голосов
/ 08 февраля 2009

Взгляните здесь на все Android Intents.

...