Surveillance de la connectivité réseau sous Android
Problème :
Comment pouvez-vous surveiller les modifications du réseau connectivité sur un appareil Android et capturer les événements de panne de réseau ?
Réponse :
Pour capturer les événements de panne de réseau sous Android, procédez comme suit :
1. Créer un récepteur de diffusion :
Créez une nouvelle classe Java qui étend la classe BroadcastReceiver :
<code class="java">public class ConnectionChangeReceiver extends BroadcastReceiver { @Override public void onReceive( Context context, Intent intent ) { // Network connectivity change handling code goes here } }</code>
2. Enregistrez le récepteur de diffusion :
Ajoutez le code XML suivant à votre fichier AndroidManifest.xml dans le fichier
<code class="xml"><receiver android:name="com.blackboard.androidtest.receiver.ConnectionChangeReceiver" android:label="NetworkConnection"> <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/> </intent-filter> </receiver></code>
3. Accorder l'autorisation :
Ajoutez l'autorisation suivante à votre fichier AndroidManifest.xml dans le fichier
<code class="xml"><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/></code>
4. Gérer les modifications de connectivité réseau :
Dans la méthode onReceive de votre classe ConnectionChangeReceiver, vous pouvez gérer les modifications de connectivité réseau. Par exemple, vous pouvez vérifier les informations du réseau actif et mobile en utilisant :
<code class="java">ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService( Context.CONNECTIVITY_SERVICE ); NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo(); NetworkInfo mobNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE );</code>
Exemple de code :
<code class="java">public class ConnectionChangeReceiver extends BroadcastReceiver { @Override public void onReceive( Context context, Intent intent ) { ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService( Context.CONNECTIVITY_SERVICE ); NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo(); NetworkInfo mobNetInfo = connectivityManager.getNetworkInfo( ConnectivityManager.TYPE_MOBILE ); if ( activeNetInfo != null ) { Toast.makeText( context, "Active Network Type : " + activeNetInfo.getTypeName(), Toast.LENGTH_SHORT ).show(); } if( mobNetInfo != null ) { Toast.makeText( context, "Mobile Network Type : " + mobNetInfo.getTypeName(), Toast.LENGTH_SHORT ).show(); } } }</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!