Maison > Java > javaDidacticiel > Comment détecter et gérer les changements de connectivité réseau sous Android ?

Comment détecter et gérer les changements de connectivité réseau sous Android ?

Barbara Streisand
Libérer: 2024-10-24 19:22:02
original
533 Les gens l'ont consulté

How to Detect and Handle Network Connectivity Changes in Android?

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>
Copier après la connexion

2. Enregistrez le récepteur de diffusion :

Ajoutez le code XML suivant à votre fichier AndroidManifest.xml dans le fichier élément :

<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>
Copier après la connexion

3. Accorder l'autorisation :

Ajoutez l'autorisation suivante à votre fichier AndroidManifest.xml dans le fichier élément :

<code class="xml"><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/></code>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal