¿Hay una manera de controlar explícitamente los intervalos de escaneo de WiFi en Android?
Actualmente estoy haciendo mi tesis de maestría en posicionamiento WiFi y para probar mis algoritmos necesitaba recopilar algunos datos.
Para ello, he escrito un programa corto y muy simple para Android que simplemente recopila el RSSI para todos los puntos de acceso disponibles que se encuentran en cada escaneo y los guarda en un archivo. He establecido unBroadcastReceiver
que escucha en el eventoWifiManager.SCAN_RESULTS_AVAILABLE_ACTION
y uso unTimer
, aquí llamado tim, para iniciar escaneos con unWifiManager
, llamado wifi de la siguiente manera:
tim.schedule(new TimerTask(){
@Override
public void run(){
wifi.startScan();
}
}, 0, 1000);
El problema que tengo ahora es que las exploraciones iniciadas no parecen ocurrir cada segundo, incluso si tengo éxito en iniciarlas y de vez en cuando hay otras exploraciones iniciadas desde otra aplicación que también se registra.
¿Hay alguna forma fácil de escanear en un intervalo establecido y no recibir los escaneados iniciados por alguna otra aplicación?
Toda la aplicación se puede encontrar enhttps://github.com/while/RSSIMiner Si ayuda de alguna manera.