La funzionalità Wi-Fi Round Trip Time (RTT) in Android 9 consente ai dispositivi che la supportano di misurare la distanza da altri dispositivi che la supportano, siano essi punti di accesso o peer Wi-Fi Aware (se Wi-Fi Aware è supportato sul dispositivo). Questa funzionalità, basata sul protocollo IEEE 802.11mc e IEEE 802.11az (disponibile da Android 15), consente alle app di utilizzare una maggiore precisione e consapevolezza della posizione.
Esempi e origine
Per utilizzare questa funzionalità, implementa l'interfaccia HAL del fornitore. In Android 14 e versioni successive, l'interfaccia HAL del fornitore è definita utilizzando AIDL. In Android 13 e versioni precedenti, l'interfaccia HAL del fornitore è definita utilizzando HIDL. In Android 8.0, HIDL ha sostituito la precedente struttura Hardware Abstraction Layer (HAL) utilizzata per semplificare le implementazioni specificando i tipi e le chiamate di metodi raccolti in interfacce e pacchetti.
Segui l'interfaccia Wi-Fi per utilizzare la funzionalità Wi-Fi RTT. A seconda dell'interfaccia implementata, si tratta di:
- AIDL:
hardware/interfaces/wifi/aidl - HIDL:
hardware/interfaces/wifi/1.0o versioni successive.
Puoi fare riferimento all'HAL Wi-Fi legacy per vedere come si correla con le interfacce AIDL e HIDL: hardware/libhardware_legacy/+/android17-release/include/hardware_legacy/rtt.h.
Implementazione
Per implementare Wi-Fi RTT, devi fornire il supporto sia per il framework sia per HAL/firmware:
Framework:
- Codice AOSP
- Attiva Wi-Fi RTT: richiede un flag funzionalità
Supporto HAL Wi-Fi RTT (IEEE 802.11mc o IEEE 802.11az) (che implica il supporto del firmware)
Per implementare questa funzionalità, implementa l'interfaccia Wi-Fi AIDL o HIDL e attiva il flag funzionalità:
In
device.mkche si trova indevice/<oem>/<device>, modifica laPRODUCT_COPY_FILESvariabile di ambiente per includere il supporto per la funzionalità Wi-Fi RTT:PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.wifi.rtt.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.rtt.xml
In caso contrario, tutto ciò che è necessario per questa funzionalità è incluso in AOSP.
Selezione casuale dell'indirizzo MAC
Per migliorare la privacy, l'indirizzo MAC utilizzato durante le transazioni Wi-Fi RTT deve essere randomizzato, ovvero non deve corrispondere all'indirizzo MAC integrato dell'interfaccia Wi-Fi. Tuttavia, in via eccezionale, quando un dispositivo è associato a un punto di accesso, può utilizzare l'indirizzo MAC con cui è associato per qualsiasi transazione RTT con quel punto di accesso o con altri punti di accesso.
Convalida
Per questa funzionalità esistono test della suite di test di compatibilità (CTS) di Android. CTS rileva quando la funzionalità è attivata e include automaticamente i test associati. Questa funzionalità può essere testata anche utilizzando la suite di test del fornitore (VTS).
Test delle unità
I test del pacchetto Wi-Fi RTT vengono eseguiti utilizzando:
Test del servizio:
atest com.android.server.wifi.rttTest dell'amministratore:
atest android.net.wifi.rttCTS
Per questa funzionalità esistono test della suite di test di compatibilità (CTS) di Android. CTS rileva quando la funzionalità è attivata e include automaticamente i test associati. Un punto di accesso che supporta Wi-Fi RTT (IEEE 802.11mc) deve trovarsi nel raggio d'azione del dispositivo in fase di test.
I test CTS possono essere attivati utilizzando:
atest WifiRttTestCalibrazione
Affinché Wi-Fi RTT funzioni correttamente, gli intervalli restituiti nei protocolli 802.11mc o 802.11az devono essere precisi entro gli indicatori chiave di prestazione (KPI) descritti in questa sezione.
Per il protocollo 11mc, alle larghezze di banda elencate (80 MHz, 40 MHz, 20 MHz) e con una dimensione del burst di 8, si prevede che il KPI per una stima dell'intervallo raggiunga la seguente accuratezza al 90° percentile di errore.
- 80 MHz: 2 metri
- 40 MHz: 4 metri
- 20 MHz: 8 metri
Per il protocollo 11az, la configurazione MIMO dell'antenna e la ripetizione del campo di addestramento lungo (LTF) influiscono sulla precisione. Con un tipico smartphone (che utilizza 2 antenne) e un punto di accesso (4 antenne), il sistema ha una configurazione MIMO 2x4. Per una configurazione di questo tipo che utilizza un fattore di ripetizione LTF di due e alle larghezze di banda elencate (160 MHz, 80 MHz, 40 MHz, 20 MHz), si prevede che il KPI per una stima dell'intervallo raggiunga la seguente accuratezza al 90° percentile di errore.
- 160 MHz: 0,5 metri
- 80 MHz: 1 metro
- 40 MHz: 2 metri
- 20 MHz: 4 metri
Per verificare che l'implementazione della funzionalità funzioni correttamente, è necessario eseguire test di calibrazione.
Questo risultato può essere ottenuto confrontando un intervallo di dati di fatto con l'intervallo stimato RTT a distanze crescenti. Per la conformità di base, ti consigliamo di convalidare la tua soluzione rispetto a un dispositivo noto per essere calibrato RTT. Ti consigliamo di testare la calibrazione dell'intervallo nelle seguenti condizioni:
- Un grande laboratorio aperto o un corridoio che non abbia molti oggetti metallici che potrebbero comportare un'incidenza insolitamente elevata di percorsi multipli.
- Almeno una traccia o un percorso in linea di vista (LOS) che si estende per 25 m.
- Marcatori con incrementi di 0,5 metri da un'estremità all'altra della traccia.
Un punto in cui fissare un punto di accesso con funzionalità RTT a un'estremità della traccia montato a 20 cm dal pavimento e un supporto mobile per uno smartphone Android (o un altro dispositivo mobile Android in fase di test) che può essere spostato lungo la traccia e allineato ai marcatori di 0,5 m, anch'esso a 20 cm dal pavimento.
Ti consigliamo di registrare 50 risultati di ranging in corrispondenza di ogni indicatore, insieme alla distanza dal punto di accesso. Per ogni posizione del marcatore devono essere calcolate statistiche, come la media e la varianza dell'intervallo.
Dai risultati del passaggio 5, è possibile tracciare un grafico per i dati di fatto (asse x) rispetto all'intervallo stimato (asse y) e stimare una retta di regressione di adattamento ottimale. La calibrazione ideale del dispositivo comporterà una retta con gradiente 1.0 e offset 0.0 m sull'asse y. Sono accettabili deviazioni da questi valori se rientrano nel KPI per la larghezza di banda corrispondente. Se i risultati non rientrano nel KPI, ti consigliamo di ricalibrare la funzionalità del dispositivo per riportare i risultati all'interno della specifica KPI.