Android Baixar Intenção
-
22-08-2019 - |
Pergunta
Eu queria saber qual é a intenção para download URLs? No navegador, ele irá baixar coisas com um ícone de notificação pouco. Eu queria saber se posso usar essa intenção (e o que é).
Solução
Os aplicativos podem baixar arquivos com o gerenciador de download como o navegador e gmail. Isto está disponível de partida com Gingerbread.
Seu aplicativo precisa da INTERNET permissão para iniciar um download. Para salvar o arquivo no diretório de download padrão, ele também precisa da WRITE_EXTERNAL_STORAGE permissão.
Veja como você pode baixar um 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);
Há um monte de outras opções para personalizar a notificação, consultando o estado de download e definir o local de download.
Este post mostra como você poderia usar o gerenciador de download em versões anteriores do Android via APIs escondidas.
Outras dicas
Enquanto eu não acredito que há um download Intenção no navegador, você provavelmente pode usar um ACTION_VIEW
normal de Intenção e ter o navegador decidir se ele deve baixar ou ver a url baseada no tipo de conteúdo.
Assim, desde o seu desencadeamento código
new Intent(Intent.ACTION_VIEW, Uri.parse(url))
e espero Isso desencadeia um download no navegador.
O que você está tentando fazer? Se a sua aplicação quer baixar um arquivo que você pode usar o código URLConnection. Se você quiser baixar um pacote, em seguida, ACTION_PACKAGE_INSTALL
deve fazer o que quiser.
Tenha um olhar aqui em tudo o Intenções Android.