1
我试图注册一个wifi接收器,我做了如下所示的代码,问题是当我故意禁用设备中的WiFi并运行代码Toast
在else
BroadCast Receiver
中的声明永远不会被调用。无线广播接收器从来没有叫
代码:
OnClickListener mainFramListener = new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION);
registerReceiver(broadcastReceiver, intentFilter);
}
};
private final BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if (action.equals(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION)) {
if (intent.getBooleanExtra(WifiManager.EXTRA_SUPPLICANT_CONNECTED, false)){
MQTT_Connection_Module();
} else {
Toast.makeText(getApplicationContext(), "No WiFi-Connection", Toast.LENGTH_SHORT).show();
}
}
};
};
权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
我相信,当discoverPeers()是的onReceive()只调用成功并且有同行近在咫尺年。因此,当您关闭无线网络时,您将无法检测到任何同伴,并且onReceive将不会被呼叫。 – 2015-03-15 20:08:23