Android WiFi状态侦听器
我是Android开发新手。如何设置活动内WiFi连接/断开连接的侦听器?它必须在活动中,因为我在其中设置了UART连接,需要将WiFi状态信息发送到UART设备。我试过一些广播接收机的东西,但失败了。这是我最后一次尝试:Android WiFi状态侦听器,android,broadcastreceiver,android-wifi,android-things,Android,Broadcastreceiver,Android Wifi,Android Things,我是Android开发新手。如何设置活动内WiFi连接/断开连接的侦听器?它必须在活动中,因为我在其中设置了UART连接,需要将WiFi状态信息发送到UART设备。我试过一些广播接收机的东西,但失败了。这是我最后一次尝试: private BroadcastReceiver myWifiReceiver = new BroadcastReceiver(){ @Override public void onReceive(Context context, Intent intent
private BroadcastReceiver myWifiReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connectivityManager = ((ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE));
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if(networkInfo != null && networkInfo.getType() == ConnectivityManager.TYPE_WIFI){
if(networkInfo.isConnected()){
Log.d("WIFI", "CONNECTED");
}else{
Log.d("WIFI", "DISCONNECTED");
}
}
}};
我可能还需要一些关于如何注册BroadcastReceiver的帮助,目前我正在活动的onResume
:
this.registerReceiver(this.myWifiReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
并在onPause
中:
this.unregisterReceiver(myWifiReceiver);
编辑:
感谢您的回答,我已经实现了我想要的,我将发布代码以供将来参考
private BroadcastReceiver myWifiReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
SupplicantState newState = intent.getParcelableExtra(WifiManager.EXTRA_NEW_STATE);
switch(newState){
case ASSOCIATED:
Log.d("WIFI", "CONNECTED");
break;
case DISCONNECTED:
if(!disconnected){
Log.d("WIFI", "DISCONNECTED");
disconnected = true;
}
}
}};
我还将BroadcastReceiver
注册移动到onStart
(并因此将注销移动到onStop
),因为onResume
并不总是被调用:
this.registerReceiver(this.myWifiReceiver, new IntentFilter(
WifiManager.SUPPLICANT_STATE_CHANGED_ACTION));
根据“连接/断开连接”的含义,您可能没有观察到正确的广播操作<代码>连接管理器。默认连接完全建立或丢失时,将触发连接操作 您可能更感兴趣的是
WifiManager.suplicant\u CONNECTION\u CHANGE\u ACTION
或WifiManager.suplicant\u STATE\u CHANGED\u ACTION
,它们会随着WiFi无线电的关联状态更改而触发
我试过一些广播接收机的东西,但失败了
如果上述行动不能满足您的需求,我鼓励您详细说明您正在经历的失败