La funzionalità Wi-Fi Round Trip Time (RTT) in Android 9 consente ai dispositivi supportati di misurare la distanza da altri dispositivi supportati: che si tratti di punti di accesso (AP) o di peer Wi-Fi Aware (se Wi-Fi Aware è supportato sul dispositivo). Questa funzionalità, basata sui protocolli IEEE 802.11mc e IEEE 802.11az (disponibili a partire 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 Vendor HAL è definita utilizzando HIDL. In Android 8.0, HIDL ha sostituito la precedente struttura Hardware Abstraction Layer (HAL) utilizzata per semplificare le implementazioni specificando tipi e 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.0
o versioni successive.
Puoi fare riferimento all'HAL Wi-Fi legacy per vedere la sua correlazione con le interfacce AIDL e HIDL: hardware/libhardware_legacy/+/android16-release/include/hardware_legacy/rtt.h.
Implementazione
Per implementare Wi-Fi RTT, devi fornire il supporto sia del framework sia di 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 AIDL o HIDL Wi-Fi e attiva il flag della funzionalità:
In
device.mk
che si trova indevice/<oem>/<device>
, modifica la variabile di ambientePRODUCT_COPY_FILES
per includere il supporto della 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.
Randomizzazione 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 a cui è associato per qualsiasi transazione RTT con quel punto di accesso o con altri punti di accesso.
Convalida
Esistono test della suite di test di compatibilità (CTS) Android per questa funzionalità. CTS rileva quando la funzionalità è attivata e include automaticamente i test associati. Questa funzionalità può essere testata anche utilizzando la Vendor Test Suite (VTS).
Test delle unità
I test del pacchetto Wi-Fi RTT vengono eseguiti utilizzando:
Test del servizio:
atest com.android.server.wifi.rtt
Test del gestore:
atest android.net.wifi.rtt
CTS
Esistono test della suite di test di compatibilità (CTS) Android per questa funzionalità. 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 WifiRttTest
Calibrazione
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) come descritto 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, il KPI per una stima dell'intervallo dovrebbe raggiungere la seguente precisione 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 cellulare (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 pari a 2 e alle larghezze di banda elencate (160 MHz, 80 MHz, 40 MHz, 20 MHz), il KPI per una stima dell'intervallo dovrebbe raggiungere la seguente precisione 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.
Ciò può essere ottenuto confrontando un intervallo di dati di riferimento con l'intervallo RTT stimato a distanze crescenti. Per la conformità di base, ti consigliamo di convalidare la tua soluzione rispetto a un dispositivo noto per essere calibrato per RTT. Ti consigliamo di testare la calibrazione del raggio nelle seguenti condizioni:
- Un grande laboratorio aperto o un corridoio con pochi oggetti metallici che potrebbero causare un numero insolitamente elevato di percorsi multipli.
- Almeno una traccia o un percorso in linea di vista che si estenda per 25 metri.
- Indicatori con incrementi di 0,5 metri da un'estremità della traccia all'altra.
Un punto in cui fissare un punto di accesso compatibile con RTT a un'estremità della pista 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 pista e allineato ai segni di 0,5 m, anch'esso a 20 cm dal pavimento.
Ti consigliamo di registrare 50 risultati di misurazione a ogni marcatore, insieme alla distanza dal punto di accesso. Le statistiche, come la media e la varianza dell'intervallo, devono essere calcolate per ogni posizione del marcatore.
Dai risultati del passaggio 5, è possibile tracciare un grafico per i dati di riferimento (asse x) rispetto all'intervallo stimato (asse y) e stimare una retta di regressione di migliore adattamento. La calibrazione ideale del dispositivo genera una retta con pendenza 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 nell'KPI, ti consigliamo di ricalibrare la funzionalità del dispositivo per riportare i risultati all'interno della specifica KPI.