[Tutoriel] : Vérification de la connexion réseau dans une application Android

  
En Android, on remarque qu'il y a beaucoup d'applications qui utilisent le réseau pour se communiquer . D’où l'importance de vérification de la disponibilité du réseau avant de commencer le traitement dans notre application (Envoie, récupération des données par exemple).
Donc cet article on va vous montrer comment vérifier la connexion réseau en Android de notre application. En faite , il existe plusieurs méthodes , nous allons les voir ensemble.

#1. Création d'une application Android:
Application Name: Check Network Connectivity 
Project Name: CheckNetworkConnectivity
Package Name :com.tutozone.checknetworkconnectivity
Activity Name: MainActivity
Création d'un nouveau projet Android


Après la création du projet , notre allons construire une simple application contenant une activité avec un bouton. On va vérifier la connexion réseau lors du clique sur le bouton. Pour le test , je vous conseille d'utiliser l'émulateur rapide de Genymobile (Genymotion) :Genymotion: Émulateur rapide et facile pour Android : Installation et intégration [Tutoriel].

Passons maintenant à notre activité ActivityMain.xml, nous allons créer 3 variables (une chaine de caractères, un bouton et un TextView et 2 méthodes (deux versions de vérification du réseau):
public class MainActivity extends Activity {

 String msg;
 TextView msgTxtView;
 Button btnCheck;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  //Initialization
  
  msgTxtView=(TextView)findViewById(R.id.txtMsg);
  btnCheck=(Button)findViewById(R.id.btnCheck);
  btnCheck.setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View arg0) {
    // TODO Auto-generated method stub
    isConnected(); //or checkConnectivity();
   }
  });
  
 }
        //the 2 methods
      }

#. Méthode 1 : 
Pour la première méthode nous allons vérifier la connexion selon le type (Wifi , Données mobile), un message sera affiché.
public void checkConnectivity(){
  ConnectivityManager cm = (ConnectivityManager) getApplicationContext()
    .getSystemService(Context.CONNECTIVITY_SERVICE);
  NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
  if (null != activeNetwork) {
            if(activeNetwork.getType() == ConnectivityManager.TYPE_WIFI)
             msg="You are connected to a WiFi Network";
            if(activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE)
             msg="You are connected to a Mobile Network";
            }   
  else
   msg = "No internet Connectivity";
  
   msgTxtView.setText(msg);
 }

#. Méthode 2 : 
 Dans cette méthode , on va retourner un boolean qui est le résultat de notre test, et selon le résultat , on procède notre traitement:
public  boolean isConnected() {
  ConnectivityManager cm = (ConnectivityManager) getApplicationContext()
    .getSystemService(Context.CONNECTIVITY_SERVICE);
   // test
   if (cm.getActiveNetworkInfo() != null
     && cm.getActiveNetworkInfo().isAvailable()
     && cm.getActiveNetworkInfo().isConnected()) {
    
   msg="You are connected to a Network";
   msgTxtView.setText(msg);
   return true;
   } else {
    
    msg = "No internet Connectivity";
    msgTxtView.setText(msg);
    return false;
   }
  }

 #2. Remarque :
S'il vous plaît ne pas oublier d'ajouter les permissions nécessaires dans le fichier AndroidManifest.xml.
 
 


#3. Code finale:
Après la compilation et l'exécution de notre projet voici le résultat finale :

Pas de connexion réseau
Connexion à un Wifi

Pour le code vous le trouverez ici (dans le GitHub)

Code source
Vous avez aimé cet article ? alors suivez-nous sur Twitter, Google+ et Facebook, et partagez-le avec les boutons ci-dessous ! Vos commentaires sont les bienvenus.

Enregistrer un commentaire