2012-07-31 1 views
0

J'ai créé une application Android qui permet à l'utilisateur Http Post et Get appels à lire et écrire des données à partir du serveur Web. Rien de trop flashy aussi. Mon téléphone/SIM a 4G. Chaque fois que l'application essaie de se connecter, la chose va lentement et la plupart du temps l'application se bloque. J'ai donc changé les paramètres pour GSM seulement. Devine quoi? L'application fonctionne beaucoup mieux. Quelles pourraient être les raisons possibles?Android App se bloque sur la connexion Internet 4G, mais fonctionne bien sur le mode GSM Seulement

+0

Pouvez-vous poster au moins la trace Log/pile de cet accident ici? Comment pouvons-nous savoir sans avoir aucune connaissance sur votre application? – YuDroid

+0

Le problème survient sur le téléphone d'un client :(C'est pourquoi j'ai dû poser une question très vague: j'utilise une connexion wifi et ça fonctionne parfaitement – SoH

+0

Avez-vous donné des priorités de connexion dans votre application? Donner la préférence dans l'ordre de leur disponibilité, c.-à-d. sélection du tout premier WIFI, puis des connexions de la carte SIM, quelles qu'elles soient, soit 3G/4G et ainsi de suite. – YuDroid

Répondre

0

Utilisez la méthode suivante afin de détecter tous les types de réseaux disponibles à la disposition de votre client:

public static boolean checkNetworkRechability(Context context) { 
     Boolean bNetwork = false; 
     ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 

     for (NetworkInfo networkInfo : connectivityManager.getAllNetworkInfo()) { 
      int netType = networkInfo.getType(); 
      int netSubType = networkInfo.getSubtype(); 

      if (netType == ConnectivityManager.TYPE_WIFI) { 
       bNetwork = networkInfo.isConnected(); 
       if (bNetwork == true) 
        break; 
      } else if (netType == ConnectivityManager.TYPE_MOBILE && netSubType != TelephonyManager.NETWORK_TYPE_UNKNOWN) { 
       bNetwork = networkInfo.isConnected(); 
       if (bNetwork == true) 
        break; 
      } else { 
       bNetwork = false; 
      } 
     } 
     if (!bNetwork) { 
      Log.i(TAG, "You are not in network"); 
     } 
     Log.i(TAG, "bNetwork : " + bNetwork); 
     return bNetwork; 
    } 
Questions connexes