2010-09-29 2 views
0

J'ai besoin de faire une requête HTTP sur Android en utilisant la connexion GSM, pas le Wifi.Faire une connexion HTTP en utilisant le réseau GSM, pas WiFi

Ma solution actuelle consiste à se déconnecter de toutes les connexions Wi-Fi et à effectuer une requête. Y a-t-il une meilleure solution? Je n'ai pas trouvé de méthodes pertinentes dans l'API (j'ai regardé dans le paquet org.apache.http, mais il semble qu'il ne sache pas quel type de connexion utiliser).

Répondre

0

, mais il semble qu'il est tout à fait au courant de ce type de connexion doit être utilisé

correcte - indirection est votre ami - Services de localisation (par exemple) sont les mêmes

+0

Donc, il semble que ma solution actuelle est la meilleure dans cette situation? – uthark

+0

correct, si vous devez tester un fournisseur spécifique, vous devez désactiver tous les autres. – KevinDTimm

+0

J'ai accepté votre réponse. – uthark

1

Faire comme proposé dans la question est parfait si l'application doit soumettre la demande HTTP via GSM maintenant, au moment où il est démarré ou au moment où l'utilisateur déclenche cette action.

Mais si l'application a besoin de faire une requête HTTP lorsque le type de connexion est GSM, c'est un peu différent. Dans ce dernier cas, je ferais de cette façon:

private static boolean isOnlineUsingGsm(Context ctx) { 
    final ConnectivityManager connectManager = (ConnectivityManager)ctx.getSystemService(Context.CONNECTIVITY_SERVICE); 

    // Return true if connected thru GSM 
    return connectManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED; 
} 

private void somewhereInTheCode() { 
    if (isOnlineUsingGsm(context)) { 
     sendHttpRequest(); 
    } 
    // else don't send it 
} 
Questions connexes