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