Maison > Java > javaDidacticiel > Comment détecter les changements d'état du réseau et les événements hors ligne sur Android ?

Comment détecter les changements d'état du réseau et les événements hors ligne sur Android ?

Mary-Kate Olsen
Libérer: 2024-10-24 19:51:02
original
785 Les gens l'ont consulté

How to Detect Network Status Changes and Offline Events on Android?

Surveillance des changements d'état du réseau sur Android

Question : Comment puis-je détecter les changements d'état du réseau sur un Android appareil, en particulier lorsque le réseau est hors ligne ?

Pour capturer les changements d'état du réseau, Android fournit la classe BroadcastReceiver. La classe ConnectivityManager permet d'obtenir des informations sur la connexion réseau active.

Solution :

1. Créez une classe Java étendant BroadcastReceiver

<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

2. Ajoutez les autorisations nécessaires au AndroidManifest.xml

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

3. Enregistrez le BroadcastReceiver dans AndroidManifest.xml

<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

4. Enregistrez le BroadcastReceiver dynamiquement (facultatif)

Si vous devez enregistrer le BroadcastReceiver dynamiquement dans votre code, vous pouvez utiliser l'approche suivante :

<code class="java">BroadcastReceiver receiver = new ConnectionChangeReceiver();
IntentFilter filter = new IntentFilter("android.net.conn.CONNECTIVITY_CHANGE");
context.registerReceiver(receiver, filter);</code>
Copier après la connexion

Ce code vous permettra de capturez les changements d’état du réseau et déterminez quand le réseau se déconnecte. Vous pouvez gérer l'événement en conséquence dans la logique de votre application.

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