Je me demandais quelle est l'intention de télécharger des URL? Dans le navigateur, il téléchargera des choses avec une petite icône de notification. Je me demandais si je peux utiliser cette intention (et ce que c'est).
Les applications peuvent télécharger des fichiers avec le gestionnaire de téléchargement, comme le navigateur et Gmail. Ceci est disponible à partir de pain d'épice.
Votre application nécessite le [~ # ~ # ~] Internet [~ # ~] autorisation d'initier un téléchargement. Pour enregistrer le fichier dans le répertoire de téléchargement par défaut, il a également besoin de la Write_external_storage autorisation.
Voici comment vous pouvez télécharger une 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);
Il existe un groupe d'autres options pour personnaliser la notification, interrogeant l'état de téléchargement et définir l'emplacement de téléchargement.
Ce blog post montre comment utiliser le gestionnaire de téléchargement sur les versions précédentes de Android via API cachées.
Bien que je ne crois pas qu'il y ait une intention de téléchargement dans le navigateur, vous pouvez probablement utiliser un ACTION_VIEW
Intention et demandez au navigateur de décider s'il doit télécharger ou afficher l'URL en fonction du type de contenu.
Donc de votre déclencheur de code
new Intent(Intent.ACTION_VIEW, Uri.parse(url))
et j'espère que cela déclenche un téléchargement dans le navigateur.
Qu'essayez-vous de faire? Si votre application souhaite télécharger un fichier, vous pouvez utiliser le code URLConnection. Si vous voulez télécharger un colis, alors ACTION_PACKAGE_INSTALL
devrait faire ce que vous voulez.
Avoir un look ici du tout le Android utiles.