dimanche 20 février 2011

Développement Androïd - le réseau est-il actif ?

Sur un mobile ou une tablette Androïd il est courant d’accéder à des services en réseau.

La plupart du temps votre mobile est connecté soit au 3G, soit au WIFI. Il arrive néanmoins que votre mobile perde le réseau : dans ce cas il est utile de tester la présence de votre réseau, sous peine d'erreur.

Voici un petit code utile qui vous permet de tester l'état de votre mobile en terme de connexion à un réseau.


public class NetworkTest1 extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
      
        // Accèder au service de connectivité
        String service = this.CONNECTIVITY_SERVICE;
        Log.v( "LTM", service );
        ConnectivityManager connectivity = (ConnectivityManager)getSystemService( service );
        //boolean b = connectivity.getBackgroundDataSetting();
      
        NetworkInfo activeNetwork = connectivity.getActiveNetworkInfo();
        if( activeNetwork == null ){
         Toast.makeText( this, "Le réseau n'est pas actif", Toast.LENGTH_LONG ).show();
        }else {
         int type = activeNetwork.getType();
         Toast.makeText( this, "type = " + type, Toast.LENGTH_LONG ).show();
        }
      
        // Spécifier que le réseau en question est de type WIFI
        int network = ConnectivityManager.TYPE_WIFI;
        NetworkInfo mobileNetwork = connectivity.getNetworkInfo(network);
      
        // Ici on obtient l'état : CONNECTED, DISCONNECTED, etc.
        NetworkInfo.State state = mobileNetwork.getState();
        NetworkInfo.DetailedState d_state = mobileNetwork.getDetailedState();
      
        // On affiche l'état du réseau dans un Toast !
        Toast.makeText( this, state.name(), Toast.LENGTH_LONG ).show();
    }
}

Aucun commentaire:

Enregistrer un commentaire