¿Cómo elige Android entre múltiples puntos de acceso?

He estado investigando mucho sobre esto. Desafortunadamente, no pude encontrar cómo, de forma predeterminada, Android elige entre múltiples puntos de acceso.

Por ejemplo, si un usuario entra en un centro comercial y hay 3 puntos de acceso dentro del alcance, ¿cómo selecciona el dispositivo a qué punto de acceso conectarse?

-Does the device select the AP based in the order in which they are in the Wi-Fi stack? 
-Does the device select the AP based on signal strength only? 
-Does the device select the AP randomly?

Además, a medida que el usuario pasa físicamente de la cobertura de AP A a la cobertura de AP B:

-Does the device stay connected with AP A until it is out of range?
-Does the device transition from AP A to AP B somewhere along the way (sort of like a soft handoff)?

Gracias de antemano.

Respuestas (1)

Creo que esto depende del dispositivo y no es necesariamente administrado por Android. La plantilla wpa_supplicant.confen /system/etc/wifi/mi Vibrant dice esto:

De manera predeterminada, wpa_supplicant solicita al controlador que realice un escaneo de AP y luego utiliza los resultados del escaneo para seleccionar un AP adecuado. Otra alternativa es permitir que el controlador se encargue del escaneo y la selección de AP y usar wpa_supplicant solo para procesar tramas EAPOL basadas en la información de asociación IEEE 802.11 del controlador.

Esto se controla configurando la ap_scanvariable en el archivo de configuración en uso, /etc/wifi/wpa_supplicant.conf. El mío está configurado en 1, que es el valor predeterminado anterior. Así que supongo que la pregunta es, al menos para mi dispositivo, ¿cómo selecciona wpa_supplicant un AP adecuado?

Selecciona entre redes en función de las prioridades explícitas dadas en /data/wifi/bcm_supp.conf. Para redes en el mismo grupo de prioridad, selecciona en función de "política de seguridad, intensidad de la señal, etc." aunque no se da el algoritmo exacto. En el caso donde ap_scanes 2 y scan_ssides 1, el algoritmo es simple: Se selecciona la primera red disponible en la lista. Las nuevas redes se agregan al archivo en el orden en que se encuentran por lo que entiendo; no enumera los AP individuales, por lo que asumo que se manejan dinámicamente de acuerdo con cualquier algoritmo que esté usando el solicitante.

Sé que eso no responde completamente a tu pregunta, pero espero que sea útil.