IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

téléchargement fichier à partir d'une url


Sujet :

Android

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 66
    Par défaut téléchargement fichier à partir d'une url
    Bonjour,

    j'ai de nouveau un souci/interrogation sur le fait de télécharger un fichier sur le net (dans mon cas un MP4) depuis mon application...

    En cherchant et en adaptant le code dans mon cas j'arrive à ce résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    URL u = new URL(mp4);
    		    HttpURLConnection c = (HttpURLConnection) u.openConnection();
    		    c.setRequestMethod("GET");
    		    c.setDoOutput(true);
    		    c.connect();
    		    FileOutputStream f = new FileOutputStream(new File("[root]","video.mp4"));
    		    InputStream in = c.getInputStream();
    			byte[] buffer = new byte[1024];
    		    int len1 = 0;
    		    while ( (len1 = in.read(buffer)) > 0 ) {
    		         f.write(buffer,0, len1);
    		    }
    		    f.close();
    dans ma variable mp4 se trouve l'url du fichier en question et j'aimerai dans un premier temps essayer de le mettre à la racine de la mémoire interne, et il est vrai que je ne sais pas exactement quel est le chemin d'accès à spécifier pour cela... (j'avais lu root sur un forum anglais, mais j'ai beaucoup de mal à trouver des infos sur ce sujet, j'ai essayé diverse choses mais je n'ai jamais l'impression que quoi que ce soit se passe)

    En fait est-ce que mon code vous paraît correct ?
    Et est-ce qu'on peut faire ce genre de manip sur l'emulateur ?

    Merci d'avance pour votre aide !

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 66
    Par défaut j'avance un peu... (ou pas)
    Je reposte pour dire que je pense avoir avancé un peu en m'aidant d'un tutorial de téléchargement d'image que j'ai trouvé là : http://www.helloandroid.com/tutorial...rl-your-device

    Malgré tout, ma vidéo semble trop volumineuse (3.5Mo) et j'ai une erreur OutofMemory :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    11-13 11:32:27.030: ERROR/dalvikvm-heap(11918): Out of memory on a 6553616-byte allocation.
    ...
    11-13 11:32:27.050: ERROR/AndroidRuntime(11918): Uncaught handler: thread main exiting due to uncaught exception
    11-13 11:32:27.060: ERROR/AndroidRuntime(11918): java.lang.OutOfMemoryError
    11-13 11:32:27.060: ERROR/AndroidRuntime(11918):     at org.apache.http.util.ByteArrayBuffer.expand(ByteArrayBuffer.java:57)
    11-13 11:32:27.060: ERROR/AndroidRuntime(11918):     at org.apache.http.util.ByteArrayBuffer.append(ByteArrayBuffer.java:84)
    11-13 11:32:27.060: ERROR/AndroidRuntime(11918):     at com.testdownload.TestDownload.onCreate(TestDownload.java:51)
    11-13 11:32:27.060: ERROR/AndroidRuntime(11918):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
    11-13 11:32:27.060: ERROR/AndroidRuntime(11918):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
    11-13 11:32:27.060: ERROR/AndroidRuntime(11918):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
    11-13 11:32:27.060: ERROR/AndroidRuntime(11918):     at android.app.ActivityThread.access$2100(ActivityThread.java:116)
    11-13 11:32:27.060: ERROR/AndroidRuntime(11918):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
    11-13 11:32:27.060: ERROR/AndroidRuntime(11918):     at android.os.Handler.dispatchMessage(Handler.java:99)
    11-13 11:32:27.060: ERROR/AndroidRuntime(11918):     at android.os.Looper.loop(Looper.java:123)
    11-13 11:32:27.060: ERROR/AndroidRuntime(11918):     at android.app.ActivityThread.main(ActivityThread.java:4203)
    11-13 11:32:27.060: ERROR/AndroidRuntime(11918):     at java.lang.reflect.Method.invokeNative(Native Method)
    11-13 11:32:27.060: ERROR/AndroidRuntime(11918):     at java.lang.reflect.Method.invoke(Method.java:521)
    11-13 11:32:27.060: ERROR/AndroidRuntime(11918):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
    11-13 11:32:27.060: ERROR/AndroidRuntime(11918):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
    11-13 11:32:27.060: ERROR/AndroidRuntime(11918):     at dalvik.system.NativeStart.main(Native Method)
    Est-ce que vous pourriez m'éclairer ? Est-ce juste lié à l'émulateur ?
    Y a-t'il possibilité d'augmenter l'espace alloué ?

    Merci d'avance.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 53
    Par défaut
    Je n'ai pas forcement de réponse à te donner, mais quelques commentaires :

    * Déjà a moins que ton téléphone (émulateur ?) soit rooté, tu ne peux rien écrire à la racine de la mémoire interne (tu peux écrire uniquement dans /sdcard/ a condition d'avoir ajouter la permission adéquate dans le manifest.

    * La façon dont tu gère ton buffer n'est pas top je pense : il vaudrait mieux utiliser un BufferedOutputStream et ne pas voir ton tableau de 1024octet (tu écrit chaque byte que tu lit directement)
    Cependant ton problème n'a pas l'aire d'être lié à ces problèmes, il faudrait que tu dise a quelle ligne de ton code correspond "TestDownload.java:51".

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 66
    Par défaut
    merci pour ta réponse, j'ai réussi à faire ce que je voulais en lisant ce topic : http://www.developpez.net/forums/d94...ement-fichier/

    Par contre comment vais-je faire si l'utilisateur ne possède pas de sdcard du coup ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.3] Obtenir le nom d'un fichier à partir d'une url dynamique
    Par Invité dans le forum Langage
    Réponses: 3
    Dernier message: 19/03/2012, 11h02
  2. [WD14] Récupération de la taille d'un fichier à partir d'une URL
    Par link256 dans le forum WinDev
    Réponses: 4
    Dernier message: 28/01/2010, 16h47
  3. Réponses: 5
    Dernier message: 03/05/2007, 13h44
  4. copie de fichier à partir d'une url
    Par Gibbon dans le forum C#
    Réponses: 4
    Dernier message: 06/02/2007, 14h13
  5. Copier un fichier à partir d'une URL ?
    Par oulahoup dans le forum ASP
    Réponses: 2
    Dernier message: 18/08/2005, 21h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo