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
471 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!

source:php.cn
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