Ich versuche, benachrichtigt zu werden, wenn mein Telefon mit einem neuen Wifi-Netzwerk verbunden wird.Broadcast Receiver wird benachrichtigt, wenn eine Verbindung zu einem anderen WLAN-Netzwerk hergestellt wird
Das ist mein BroadcastReceiver
‚s Logik:
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
Bundle extras = intent.getExtras();
if (extras != null) {
for (String key : extras.keySet()) {
if(key.equals("networkInfo")){
NetworkInfo info = (NetworkInfo) extras.get(key);
if(info.getType() == ConnectivityManager.TYPE_WIFI){
if(info.getState().toString().equals("CONNECTED")){
//do stuff
}
}
}
}
}
}
}
Das funktioniert gut, wenn ich auf meinem Wifi drehen und zu einem neuen Netzwerk verbinden. Aber mein Problem ist, dass nichts passiert, wenn ich bereits mit einem Wifi-Netzwerk verbunden bin und mich dann mit einem anderen verbinde.
Was ist das richtige Actoin
, das ich zu meinem IntentFilter
hinzufügen sollte, um das zu erreichen?
EDIT
Dieser Code funktioniert gut. Das Problem war, dass die WifiReceiver
nicht registriert wurde.
Es hat nicht funktioniert. Der 'WifiManager.SUPPLICANT_STATE_CHANGED_ACTION' funktioniert nur, wenn ich meinen Wifi einschalte und mich mit einem Wifi-Netzwerk verbinde. Aber wenn ich von einem Wifi-Netzwerk zu einem anderen wechsle, tut es nichts. – kamal
Sorry, ich habe einen Fehler gemacht. Ich habe die Anwendung beendet, die 'onPause() 'aufruft und somit den' WifiReceiver 'abmeldet. Dein Code funktioniert einwandfrei. – kamal
In diesem Fall können Sie die Übertragung in Ihrer Manifestdatei registrieren. Wenn die Antwort Ihnen hilft, überlegen Sie bitte, die Antwort zu verbessern. –