0

J'ai une application Android qui analyse du HTML, télécharge une image et l'affiche. J'utilise un AsyncTask pour faire l'analyse HTML et le téléchargement d'image, mais cela ne devrait pas être pertinent. Je n'ai jamais de problème quand je suis en WiFi sur mon téléphone, quand j'utilise le débogueur Eclipse sur mon téléphone, ou quand j'utilise l'émulateur. Quand j'ai mon téléphone sur le réseau cellulaire (même avec une très bonne réception), l'image ne s'affiche parfois pas.L'application Android fonctionne sur WiFi, en mode débogage, ou sur émulateur, pas sur le réseau cellulaire

J'ai du mal à trouver ce qui ne va pas, car le problème ne peut pas être reproduit dans le débogueur. Est-ce que quelqu'un a une idée de ce qui pourrait être faux?

Merci!

Mise à jour: Je l'ai réduit à la fonction de téléchargement d'image. De cette façon, mon code d'origine:

private Bitmap downloadImage(String url) { 
     Bitmap image = null; 
     debug = ""; 
     try { 
      URL image_url = new URL(url); 
      HttpURLConnection image_connection = (HttpURLConnection) image_url 
        .openConnection(); 
      image_connection.connect(); 
      InputStream image_stream = image_connection.getInputStream(); 
      debug = image_stream.available()+""; 
      image = BitmapFactory.decodeStream(image_stream); 
     } catch (Exception e) { 
      Log.e("downloadImage", "Exception: "+e.getMessage()); 
     } 

     return image; 
} 

J'ai aussi essayé d'utiliser le code de ce tutoriel, mais le même bug apparu.

http://www.devx.com/wireless/Article/39810/1954

À ce stade, je pense qu'il doit avoir à faire avec Verizon, mais je ne sais pas comment comprendre ce qui se passe. J'aimerais qu'il y ait quelque chose comme Wireshark pour Android. J'ai donné mon code à un de mes amis sur T-Mobile avec le G1 et un ami sur Sprint avec l'EVO. J'ai le Droid Eris sur Verizon.

+0

A tout cela transfère-t-il des données? Les connexions mobiles utilisent une sorte de proxy, peut-être que vous devriez vérifier les logs de votre serveur pour obtenir plus d'informations. – Pentium10

+0

Merci, mais ce n'est pas mon serveur auquel j'accède. (Le contenu est CC sous licence btw) – Computerish

+0

et il n'y a rien de pertinent dans 'logcat'? –

Répondre

0

Quel transporteur est-ce? Je me souviens que T-Mobile a toujours routé le trafic http via son propre proxy, ce qui est un peu lent à actualiser, et il y avait quelques problèmes, en particulier lorsque les données étaient sous une certaine taille - 64 Ko, je crois.

Voir ce sujet: http://groups.google.com/group/android-developers/browse_frm/thread/48e84811764da1cb/7f052a903314b2b4?hl=en

+0

Intéressant ... Je suis sur Verizon, mais j'espère avoir un ami sur Sprint pour l'essayer et peut-être un sur T-Mobile (je ne me souviens pas avec certitude quel opérateur il a maintenant). – Computerish

+0

Vous pouvez également essayer de tromper le proxy en ajoutant des données factices à votre URL, comme "? Randomvalue = 12345678" - voir si cela fait une différence. – EboMike

+0

Merci, mais cela n'a pas fait de différence. J'ai finalement ajouté une ligne à la fin de la fonction de téléchargement d'image qui dit 'if (image == null) return downloadImage (url, retryCount-1); ' – Computerish

Questions connexes