Android Wifi Scan - BroadcastReceiver für SCAN_RESULTS_AVAILABLE_ACTION wird nicht aufgerufen

Hier ist mein Code:

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();
    }

Ich habe das @ registrieBroadcastReceiver genau wie ich es in allen Beispielen gesehen habe undstartScan.

Was passiert ist, daswifi list ändert sich (sicher, ich habe getestet), aberonReceive wird nicht aufgerufen, wenn ich nur in der App bleibe.

Was machtonReceive endlich angerufen zu werden - heißt, die App zu starten, sie laufen zu lassen und im Android-Handy auf @ zu gehDie Einstellunge ->Wlan einstellunge. Wenn Sie dorthin gehen, wird die Liste plötzlich aktualisiert undonReceive wird genannt

Was ist das Problem hier?

TutwifiManager.startScan(); führt den Scan nur einmal aus? oder ist es eine Funktion, die eingehende "Scan-Ergebnisse" abhört?

Und offensichtlich, warum wird der Empfänger nicht angerufen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage