6 votes

Comment utiliser le gestionnaire de téléchargement intégré sur Android

Je veux développer une application pour la plate-forme Android qui peut télécharger certains fichiers à partir de mon serveur.

Comment puis-je utiliser le gestionnaire de téléchargement d'Android comme il est utilisé dans l'application Android market ? Je veux dire, celui où lorsque l'utilisateur télécharge quelque chose, un statut de téléchargement est affiché dans la barre de notification.

Désolé pour mon anglais !

6voto

Juri Points 14330

Celui dont vous parlez est probablement intégré à l'application Android Market. Je suppose donc qu'il n'y a aucun moyen de le réutiliser facilement, mais que vous devez plutôt en créer un similaire vous-même. Pour ce faire, vous pouvez consulter les articles suivants de SO :

Selon le type de fichiers que vous utilisez, j'ai constaté que le moyen le plus simple de télécharger des fichiers à partir d'un serveur distant est de lancer une intention du type

Intent downloadIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(pathToFile));

Si le "pathToFile" est une adresse HTTP vers un document pdf par exemple, le navigateur commencera automatiquement un téléchargement qui s'affichera dans la barre de notification et une fois terminé, l'utilisateur pourra cliquer dessus et (si une application correspondante est installée) le fichier sera ouvert.

Si vous devez traiter les fichiers téléchargés à partir de votre application, il est probablement préférable de gérer le téléchargement par vous-même, en ouvrant une connexion HTTP, etc.

4voto

dokkaebi Points 4464

Vous pouvez également utiliser la fonction DownloadManager .

        DownloadManager mgr = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);

L'envoi d'une DownloadManager.Request à ce service fait apparaître le téléchargement dans la zone de notification.

2voto

Gagan Deep Points 636

Utilisez cette classe pour télécharger un fichier à l'aide d'un gestionnaire de téléchargement.

  public class DLManager {
 @SuppressLint("NewApi")
 public static void useDownloadManager(String url, String name, Context c) {
  DownloadManager dm = (DownloadManager) c
    .getSystemService(Context.DOWNLOAD_SERVICE);
  DownloadManager.Request dlrequest = new DownloadManager.Request(
    Uri.parse(url));
  dlrequest
    .setAllowedNetworkTypes(
      DownloadManager.Request.NETWORK_WIFI
        | DownloadManager.Request.NETWORK_MOBILE)
    .setTitle("Title")
    .setDescription("Downloading in Progress..")
    .setDestinationInExternalPublicDir("Directory_name", name + ".jpg")
    .allowScanningByMediaScanner();

  dm.enqueue(dlrequest);

 }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X