Mit der Funktion Wi‑Fi Round Trip Time (RTT) in Android 9 können unterstützte Geräte die Entfernung zu anderen unterstützten Geräten messen, unabhängig davon, ob es sich um Access Points (APs) oder Wi‑Fi Aware-Peers handelt (wenn Wi‑Fi Aware auf dem Gerät unterstützt wird). Diese Funktion basiert auf dem IEEE 802.11mc- und dem IEEE 802.11az-Protokoll (ab Android 15 verfügbar) und ermöglicht es Apps, eine höhere Standortgenauigkeit und ‑erkennung zu nutzen.
Beispiele und Quelle
Wenn Sie diese Funktion nutzen möchten, müssen Sie die Vendor HAL-Schnittstelle implementieren. In Android 14 und höher wird die Vendor-HAL-Schnittstelle mit AIDL definiert. In Android 13 und niedriger wird die Vendor-HAL-Schnittstelle mit HIDL definiert. In Android 8.0 hat HIDL die bisherige Struktur der Hardwareabstraktionsschicht (HAL) ersetzt, die zur Optimierung von Implementierungen verwendet wurde, indem Typen und Methodenaufrufe in Schnittstellen und Paketen zusammengefasst wurden.
Folgen Sie der WLAN-Schnittstelle, um die WLAN-RTT-Funktion zu verwenden. Je nachdem, welche Schnittstelle implementiert ist, gilt Folgendes:
- AIDL:
hardware/interfaces/wifi/aidl - HIDL:
hardware/interfaces/wifi/1.0oder höher.
Informationen dazu, wie die alte WLAN-HAL mit den AIDL- und HIDL-Schnittstellen zusammenhängt, finden Sie unter hardware/libhardware_legacy/+/android16-release/include/hardware_legacy/rtt.h.
Implementierung
Wenn Sie Wi‑Fi RTT implementieren möchten, müssen Sie sowohl Framework- als auch HAL-/Firmware-Unterstützung bereitstellen:
Framework:
- AOSP-Code
- WLAN RTT aktivieren: erfordert ein Funktions-Flag
Unterstützung der WLAN-RTT-HAL (IEEE 802.11mc oder IEEE 802.11az) (was Firmware-Unterstützung impliziert)
Um diese Funktion zu implementieren, implementieren Sie die Wi‑Fi AIDL- oder HIDL-Schnittstelle und aktivieren Sie das Funktionsflag:
Ändern Sie in
device.mkunterdevice/<oem>/<device>die UmgebungsvariablePRODUCT_COPY_FILES, um Unterstützung für die Wi-Fi RTT-Funktion hinzuzufügen:PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.wifi.rtt.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.rtt.xml
Andernfalls ist alles, was für diese Funktion erforderlich ist, in AOSP enthalten.
MAC‑Randomisierung
Um den Datenschutz zu verbessern, muss die bei Wi‑Fi RTT-Transaktionen verwendete MAC-Adresse zufällig sein. Sie darf also nicht mit der integrierten MAC-Adresse der WLAN-Schnittstelle übereinstimmen. Wenn ein Gerät jedoch mit einem AP verknüpft ist, kann es ausnahmsweise die MAC-Adresse verwenden, mit der es verknüpft ist, für alle RTT-Transaktionen mit diesem AP oder mit anderen APs.
Zertifizierungsstufe
Für diese Funktion sind Tests in der Android Compatibility Test Suite (CTS) vorhanden. Das CTS erkennt, wenn die Funktion aktiviert ist, und schließt die zugehörigen Tests automatisch ein. Diese Funktion kann auch mit der Vendor Test Suite (VTS) getestet werden.
Einheitentests
Die Wi‑Fi RTT-Pakettests werden mit Folgendem ausgeführt:
Diensttests:
atest com.android.server.wifi.rttManager-Tests:
atest android.net.wifi.rttCTS
Für diese Funktion sind Tests in der Android Compatibility Test Suite (CTS) vorhanden. Das CTS erkennt, wenn die Funktion aktiviert ist, und schließt die zugehörigen Tests automatisch ein. Ein Zugangspunkt, der Wi‑Fi RTT (IEEE 802.11mc) unterstützt, muss sich in Reichweite des zu testenden Geräts befinden.
Die CTS-Tests können mit folgenden Methoden ausgelöst werden:
atest WifiRttTestKalibrierung
Damit Wi-Fi RTT gut funktioniert, sollten die in den Protokollen 802.11mc oder 802.11az zurückgegebenen Entfernungen innerhalb der in diesem Abschnitt beschriebenen KPIs liegen.
Beim 11mc-Protokoll wird bei den aufgeführten Bandbreiten (80 MHz, 40 MHz, 20 MHz) und einer Burst-Größe von 8 erwartet, dass der KPI für eine Bereichsschätzung die folgende Genauigkeit beim 90. Perzentil des Fehlers erreicht.
- 80 MHz:2 Meter
- 40 MHz:4 Meter
- 20 MHz:8 Meter
Beim 11az-Protokoll wirken sich die Antennen-MIMO-Konfiguration und die Wiederholung des langen Trainingsfelds (Long Training Field, LTF) auf die Genauigkeit aus. Bei einem typischen Mobiltelefon (mit 2 Antennen) und einem Access Point (mit 4 Antennen) hat das System eine 2x4-MIMO-Konfiguration. Bei einer solchen Konfiguration mit einem LTF-Wiederholungsfaktor von zwei und den aufgeführten Bandbreiten (160 MHz, 80 MHz, 40 MHz, 20 MHz) wird erwartet, dass der KPI für eine Bereichsschätzung die folgende Genauigkeit beim 90. Perzentil des Fehlers erreicht.
- 160 MHz:0,5 Meter
- 80 MHz:1 Meter
- 40 MHz:2 Meter
- 20 MHz:4 Meter
Um zu prüfen, ob die Implementierung der Funktion ordnungsgemäß funktioniert, sind Kalibrierungstests erforderlich.
Dazu wird ein Ground-Truth-Bereich mit dem geschätzten RTT-Bereich bei zunehmenden Entfernungen verglichen. Für die grundlegende Konformität empfehlen wir, Ihre Lösung auf einem Gerät zu testen, das RTT-kalibriert ist. Wir empfehlen, die Reichweitenabstimmung unter den folgenden Bedingungen zu testen:
- Ein großes offenes Labor oder ein Korridor ohne viele Metallgegenstände, die zu ungewöhnlich häufigen Mehrwegsignalen führen könnten.
- Mindestens ein LOS-Track (Line-Of-Sight) oder -Pfad mit einer Länge von 25 m.
- Markierungen in 0,5-Meter-Schritten von einem Ende der Strecke zum anderen.
Ein Ort, an dem ein RTT-fähiger Zugriffspunkt an einem Ende der 20 cm über dem Boden montierten Schiene befestigt werden kann, und eine bewegliche Halterung für ein Android-Smartphone (oder ein anderes zu testendes Android-Mobilgerät), die entlang der Schiene bewegt und an den 0,5‑m-Markierungen ausgerichtet werden kann, ebenfalls 20 cm über dem Boden.
Wir empfehlen, an jeder Markierung 50 Entfernungsmessungen sowie die Entfernung vom Zugangspunkt aufzuzeichnen. Statistiken wie der Mittelwert und die Varianz des Bereichs sollten für jede Markierungsposition berechnet werden.
Anhand der Ergebnisse aus Schritt 5 kann ein Diagramm für die Grundwahrheit (x-Achse) im Vergleich zum geschätzten Bereich (y-Achse) erstellt und eine Regressionslinie für die beste Anpassung geschätzt werden. Bei einer idealen Geräteabstimmung ergibt sich eine Linie mit einer Steigung von 1,0 und einem Versatz von 0,0 m auf der y-Achse. Abweichungen von diesen Werten sind zulässig, wenn sie innerhalb des KPI für die entsprechende Bandbreite liegen. Wenn die Ergebnisse außerhalb des KPI liegen, empfehlen wir, die Gerätefunktion neu zu kalibrieren, damit die Ergebnisse der KPI-Spezifikation entsprechen.