Je suis Android débutant et je veux déclarer un broadcastreceiver qui réagit sur CONNECTIVITY_CHANGE. Je l'ai essayé ce qui suit:comment définir Broadcastreceiver avec CONNECTIVITY_CHANGE?
private void checkInternet() {
IntentFilter ifilter = new IntentFilter ("android.net.conn.CONNECTIVITY_CHANGE");
broadcastreceiver = new BroadcastReceiver() {
@Override
public void onReceive (Context Context, Intent Intent) {
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService (getApplicationContext(). CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo! = null && networkInfo.getState() == NetworkInfo.State.CONNECTED)
Toast.makeText (getApplicationContext(), "Internet", Toast.LENGTH_SHORT) .show();
else
Toast.makeText (getApplicationContext(), "No Internet", Toast.LENGTH_SHORT) .show();
}
};
this.registerReceiver (broadcastreceiver, ifilter);
}
En Actitvity.onCreate j'appelle checkInternet. Lorsque je déconnecte Internet, les messages "No Internet" et "Internet" s'affichent. Et quand je me connecte à Internet les deux messages "No Internet" et "Internet" reviennent et dans le même ordre. Quelqu'un peut-il s'il vous plaît me dire pourquoi le Broadcastreceiver 2 fois commence et montre 2 statuts différents de départ? Je vous remercie à l'avance
Possible copie de [Récepteur de diffusion pour vérifier la connexion Internet dans l'application Android] (https://stackoverflow.com/questions/ 15698790/diffusion-récepteur-pour-vérification-internet-connexion-dans-android-app) – mrid
merci beaucoup pour la réponse rapide. J'ai déjà lu cet article et d'autres articles aussi. En ce que le récepteur est appelé deux fois, mais avec chaque appel vient le même message (par exemple "Internet" "Internet" ou "Pas d'Internet" "Pas d'Internet"). Dans mon APP, chaque appel montre 2 statuts différents ("No Internet" ET "Internet"). Je déclare le destinataire seulement au point, pas dans le manifeste. Pouvez-vous aider s'il vous plaît? – user7396065
avez-vous inclus l'autorisation 'CONNECTIVITY_CHANGE' dans le manifeste? – mrid