2009-02-08 18 views
24

Je me demandais quelle est l'intention de télécharger des URL? Dans le navigateur, il va télécharger des choses avec une petite icône de notification. Je me demandais si je pouvais utiliser cette intention (et ce que c'est).Android Intention de téléchargement

+0

Honnêtement, je n'ai aucune idée de ce que vous demandez ici, s'il vous plaît clarifier. –

+0

Pour revenir sur cette vieille question - c'est une intention privée. Regardez DownloadManager dans l'AOSP. –

+0

avez-vous des liens/guides/sources sur comment appeler ce DownloadManager? Et, parce que c'est privé donc pas utilisable pour nous, avez-vous trouvé une alternative sur la façon de télécharger un fichier? – TiGer

Répondre

58

Les applications peuvent télécharger des fichiers avec le gestionnaire de téléchargement, tout comme le navigateur et Gmail. C'est disponible en commençant par Gingerbread.

Votre application nécessite l'autorisation INTERNET pour lancer le téléchargement. Pour enregistrer le fichier dans le répertoire de téléchargement par défaut, il a également besoin de l'autorisation WRITE_EXTERNAL_STORAGE.

Voilà comment vous pouvez télécharger un 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 y a un tas d'autres options pour la personnalisation de la notification, l'interrogation de l'état de téléchargement et la mise en emplacement du téléchargement.

This blog post montre comment vous pourriez utiliser le gestionnaire de téléchargement sur les versions précédentes d'Android via des API cachées.

+0

Pourquoi il affiche toujours "Téléchargement infructueux" sur Android 4.4? –

0

Jetez un oeil here à tous les Intents Android.

+0

C'est bien, mais il n'y a personne qui commence un téléchargement (peut-être le navigateur, je vais essayer). Merci quand même. –

+0

Non, le navigateur ne fonctionne pas - merci quand même. Je peux devoir le faire manuellement. –

+0

@MBober: ça marche pour moi ... – GregD

2

Qu'est-ce que vous essayez de faire? Si votre application souhaite télécharger un fichier, vous pouvez utiliser le code UrlConnection. Si vous voulez télécharger un paquet alors ACTION_PACKAGE_INSTALL devrait faire ce que vous voulez.

+0

Je sais, mais le navigateur a un téléchargement - notification - chose et je pensais que si c'était une intention publique, je pourrais simplement l'utiliser à la place. Je suppose que je vais devoir le faire manuellement. Merci, Isaac –

+3

Je me rends compte que c'est vieux, mais cette réponse acceptée n'est pas la meilleure réponse, et honnêtement pas vraiment une réponse à tout ce qui est demandé. Au lieu de cela, la réponse «correcte» la mieux notée est d'Alexandre Jasmin ci-dessous. – Josh

17

Bien que je ne crois pas qu'il existe un Intention de téléchargement dans le navigateur, vous pouvez probablement utiliser une Intention normale et demander au navigateur de télécharger ou d'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 espère cela déclenche un téléchargement dans le navigateur.

+0

Ce téléchargement avec le navigateur, mais sans aucune barre de progression ou de commentaires des utilisateurs - Je reçois seulement une notification de téléchargement terminé. –