Я пытаюсь зарегистрировать приемник Wi-Fi, и я сделал это, как показано в коде, представленном ниже, проблема в том, что я намеренно отключил Wi-Fi в устройстве и запустил код Toast
в else
утверждение в BroadCast Receiver
никогда не вызывается.WiFi 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"/>
Я считаю, что OnReceive() вызывается только тогда, когда discoverPeers() является успешный И есть сверстники nearb у. Таким образом, когда вы отключите Wi-Fi, вы не сможете обнаружить ни одного сверстника, и onReceive не будет вызван. –