Je pense que cela dépend de l'appareil et n'est pas nécessairement géré par Android. Le modèle wpa_supplicant.conf
en /system/etc/wifi/
sur mon Vibrant dit ceci :
Par défaut, wpa_supplicant demande au pilote d'effectuer un balayage des points d'accès et utilise ensuite les résultats du balayage pour sélectionner un point d'accès approprié. Une autre solution consiste à laisser le pilote se charger de la recherche et de la sélection des points d'accès et à utiliser wpa_supplicant pour traiter les trames EAPOL sur la base des informations d'association IEEE 802.11 fournies par le pilote.
Ceci est contrôlé par le réglage de l'option ap_scan
dans le fichier de configuration en cours d'utilisation, /etc/wifi/wpa_supplicant.conf
. Le mien est réglé sur 1, ce qui est la valeur par défaut ci-dessus. Je suppose donc que la question est, au moins pour mon appareil, comment wpa_supplicant sélectionne-t-il un point d'accès approprié ?
Il sélectionne entre les réseaux sur la base de priorités explicites données dans le document /data/wifi/bcm_supp.conf
. Pour les réseaux du même groupe de priorité, la sélection se fait sur la base de la "politique de sécurité, de la force du signal, etc. Dans le cas où ap_scan
est 2 et scan_ssid
est égal à 1, l'algorithme est simple : Le premier réseau disponible dans la liste est sélectionné. Les nouveaux réseaux sont ajoutés au fichier dans l'ordre où ils sont rencontrés d'après ce que j'ai compris ; il ne liste pas les points d'accès individuels, donc je suppose qu'ils sont traités dynamiquement selon l'algorithme utilisé par le supplicant.
Je sais que cela ne répond pas entièrement à votre question, mais j'espère que c'est utile.