Dans les applications Android, les récepteurs de diffusion sont utilisés pour surveiller les changements dans le système ou des événements spécifiques. L’un de ces cas d’utilisation courants consiste à vérifier la connectivité Internet. Cependant, dans certains scénarios, il peut être souhaitable de limiter l'invocation du récepteur aux instances où une connexion réseau est disponible.
Un défi courant rencontré est que le récepteur est appelé deux fois, même si le réseau n'est pas disponible. Cela peut être attribué à l'ajout de plusieurs filtres d'intention dans la déclaration manifeste du destinataire. Pour résoudre ce problème, il suffit d'utiliser une seule action pour les modifications de connectivité réseau, telle que :
<intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter>
Pour répondre à la deuxième préoccupation, où le récepteur doit ne se déclenche que lorsqu'une connexion réseau est disponible, le code fourni remplit effectivement cette exigence. Il surveille la disponibilité du réseau Wi-Fi et du réseau mobile et avertit uniquement si l'un d'eux est connecté.
Pour une approche plus simple de la vérification de la connectivité Internet, envisagez la fonction suivante :
public boolean isOnline(Context context) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo netInfo = cm.getActiveNetworkInfo(); //should check for null as it will be null in airplane mode return (netInfo != null && netInfo.isConnected()); }
Cette méthode fournit un moyen concis de déterminer si un appareil mobile est connecté à un réseau.
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!