Android Wifi Scan - BroadcastReceiver para SCAN_RESULTS_AVAILABLE_ACTION no se llama
Aquí está mi código:
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();
}
Registré elBroadcastReceiver
exactamente como vi en todos los ejemplos, e hicestartScan
.
Lo que pasa es que ellista wifi está cambiando (seguro, lo probé), peroonReceive
no se llama si solo me quedo en la aplicación.
Lo que haceonReceive
finalmente se llamará: es iniciar la aplicación, dejarla en funcionamiento y entrar en el teléfono Android paraConfiguraciones ->Configuración wifi. al ir allí, de repente, la Lista se está actualizando yonReceive
se llama.
¿Cuál es el problema aquí?
HacewifiManager.startScan();
ejecuta el escaneo solo una vez? o es una función que sigue escuchando los "Resultados de escaneo" entrantes?
Y obviamente, ¿por qué no se llama al receptor?