0
我試圖在手機連接到新的Wifi網絡時收到通知。當連接到另一個WiFi網絡時,廣播接收器會得到通知
這是我BroadcastReceiver
的邏輯:
@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
}
}
}
}
}
}
}
,當我打開我的無線網絡連接,連接到一個新的網絡能正常工作。但我的問題是,當我已經連接到Wifi網絡,然後連接到另一個然後沒有任何反應。
什麼是正確的Actoin
,我應該添加到我的IntentFilter
爲了實現這一目標?
編輯
此代碼工作正常。問題在於WifiReceiver
未註冊。
它沒有工作。 WifiManager.SUPPLICANT_STATE_CHANGED_ACTION只在打開我的Wifi並連接到Wifi網絡時才起作用。但是當我從一個Wifi網絡移動到另一個時,它什麼都不做。 – kamal
對不起,我犯了一個錯誤。我正在退出調用'onPause()'的應用程序,因此取消註冊'WifiReceiver'。你的代碼工作正常。 – kamal
在這種情況下,您可以在清單文件中註冊廣播。如果答案對您有幫助,請考慮提供答案。 –