Wie wählt Android zwischen mehreren Zugriffspunkten aus?

Ich habe viel darüber geforscht. Leider konnte ich nicht herausfinden, wie Android standardmäßig zwischen mehreren Zugriffspunkten auswählt.

Wenn ein Benutzer beispielsweise ein Einkaufszentrum betritt und sich 3 Hotspots in Reichweite befinden, wie wählt das Gerät aus, mit welchem ​​Zugangspunkt es sich verbindet?

-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?

Wenn sich der Benutzer physisch von der Abdeckung von AP A zur Abdeckung von AP B bewegt:

-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)?

Vielen Dank im Voraus.

Antworten (1)

Ich glaube, das ist geräteabhängig und wird nicht unbedingt von Android verwaltet. Die Vorlage wpa_supplicant.confin /system/etc/wifi/meinem Vibrant sagt Folgendes:

Standardmäßig fordert wpa_supplicant den Treiber auf, AP-Scans durchzuführen, und verwendet dann die Scan-Ergebnisse, um einen geeigneten AP auszuwählen. Eine andere Alternative besteht darin, dem Treiber zu erlauben, sich um das AP-Scannen und die Auswahl zu kümmern, und wpa_supplicant nur zum Verarbeiten von EAPOL-Frames basierend auf IEEE 802.11-Zuordnungsinformationen vom Treiber zu verwenden.

Dies wird gesteuert, indem die ap_scanVariable in der verwendeten Konfigurationsdatei gesetzt wird, /etc/wifi/wpa_supplicant.conf. Mine ist auf 1 gesetzt, was die Standardeinstellung oben ist. Ich denke, die Frage ist, zumindest für mein Gerät, wie wählt wpa_supplicant einen geeigneten AP aus?

Es wählt zwischen Netzwerken basierend auf expliziten Prioritäten aus, die in angegeben sind /data/wifi/bcm_supp.conf. Für Netzwerke in derselben Prioritätsgruppe wählt es basierend auf "Sicherheitsrichtlinie, Signalstärke usw." obwohl der genaue Algorithmus nicht angegeben ist. Für den Fall, dass ap_scan2 und scan_ssid1 ist, ist der Algorithmus einfach: Das erste verfügbare Netzwerk in der Liste wird ausgewählt. Neue Netzwerke werden der Datei in der Reihenfolge hinzugefügt, in der sie nach meinem Verständnis angetroffen werden. Es listet keine einzelnen APs auf, daher gehe ich davon aus, dass sie dynamisch behandelt werden, je nachdem, welchen Algorithmus der Bittsteller verwendet.

Ich weiß, das beantwortet Ihre Frage nicht vollständig, aber hoffentlich ist es nützlich.