Android Wifi Scan - BroadcastReceiver для SCAN_RESULTS_AVAILABLE_ACTION не вызывается
Вот мой код:
public class FloatWifiManager implements IWifiManager {
private WifiManager wifiManager;
private BroadcastReceiver wifiScanReceiver;
public FloatWifiManager(Context context) {
...
wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
// Registering Wifi Receiver
wifiScanReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context c, Intent intent) {
if (intent.getAction().equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) {
// not getting called, only after running app and manually going to the wifi settings in android
}
}
};
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
context.registerReceiver(wifiScanReceiver, intentFilter);
wifiManager.startScan();
}
Я зарегистрировалBroadcastReceiver
точно так же, как я видел во всех примерах, и сделалstartScan
.
Что происходит,список Wi-Fi меняется (наверняка я проверял), ноonReceive
не вызывается, если я просто остаюсь в приложении.
Что делаетonReceive
наконец-то позвонить - это запустить приложение, оставить его запущенным и зайти в телефон андроиднастройки ->Настройки Wi-Fi, при переходе туда список внезапно обновляется иonReceive
называется.
В чем здесь проблема?
Есть лиwifiManager.startScan();
запускает сканирование только один раз? или это функция, которая продолжает прослушивать входящие "Результаты сканирования"?
И, очевидно, почему не вызывается приемник?