¿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.

Respuestas a la pregunta(1)

Su respuesta a la pregunta