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?