Wi-Fi on/off 변경 사항을 감지하고 싶습니다. 아래의 코드는 제대로 작동하지만 브로드 캐스트 수신기의 몇 가지 반복을 거칩니다. 예를 들어, 설정에서 Wi-Fi를 켜면 부울 값을 coonected로 설정하면 false가 8 번, true가 2 번 나타납니다. 정상입니까?BroadcastReceiver에서 Wifi 변경시 여러 상태가 변경되는 이유
public class MainActivity extends AppCompatActivity {
TextView wifistate = null;
BroadcastReceiver broadcastReceiver;
WifiManager wifi;
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = getApplicationContext();
wifistate = (TextView) findViewById(R.id.wifistate);
wifi = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if (action.equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)) {
NetworkInfo info = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
boolean connected = info.isConnected();
if (connected) {
Log.i("RCVR", "True");
wifistate.setText("Connected");
} else {
Log.i("RCVR", "False");
wifistate.setText("Disconnected");
}
}
}
};
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
registerReceiver(broadcastReceiver, intentFilter);
}
}
여기에 반복이 있습니다. 최종 결과가 정확합니다.
변경중인 'NetworkInfo'의 다른 필드가 있습니까? –
난 그냥 설정에서 스위치를 켜기 -> 와이파이 – narb
당신은 내 질문에 대답하지 않았다. –