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(); запускает сканирование только один раз? или это функция, которая продолжает прослушивать входящие "Результаты сканирования"?

И, очевидно, почему не вызывается приемник?

Ответы на вопрос(1)

Ваш ответ на вопрос