La funzionalità RTT (Round Trip Time) Wi-Fi in Android 9 consente ai dispositivi di supporto di misurare la distanza da altri dispositivi di supporto: punti di accesso (AP) o peer Wi-Fi Aware (se Wi-Fi Aware è supportato sul dispositivo). Questa funzionalità, basata sui protocolli 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 fonte
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 HAL (Hardware Abstraction Layer) 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à RTT Wi-Fi. 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 precedente per vedere come è correlato alle interfacce AIDL e HIDL: hardware/libhardware_legacy/+/main/include/hardware_legacy/rtt.h.
Implementazione
Per implementare il RTT Wi-Fi, devi fornire il supporto sia del framework sia di HAL/firmware:
Framework:
- Codice AOSP
- Attiva RTT Wi-Fi: richiede un flag di funzionalità
Supporto HAL per RTT Wi-Fi (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 abilita il flag funzionalità:
In
device.mk
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 MAC
Per migliorare la privacy, l'indirizzo MAC utilizzato durante le transazioni RTT Wi-Fi deve essere randomizzato, ovvero non deve corrispondere all'indirizzo MAC nativo dell'interfaccia Wi-Fi. Tuttavia, come eccezione, quando un dispositivo è associato a un AP, può utilizzare l'indirizzo MAC con cui è associato per qualsiasi transazione RTT con quell'AP o con altri AP.
Convalida
Per questa funzionalità esistono test della suite di test di compatibilità Android (CTS). 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 RTT Wi-Fi vengono eseguiti utilizzando:
Test di servizio:
atest com.android.server.wifi.rtt
Test del gestore:
atest android.net.wifi.rtt
CTS
Per questa funzionalità esistono test della suite di test di compatibilità Android (CTS). CTS rileva quando la funzionalità è attivata e include automaticamente i test associati. Un punto di accesso che supporta il RTT Wi-Fi (IEEE 802.11mc) deve essere nel raggio di azione del dispositivo in test.
I test CTS possono essere attivati utilizzando:
atest WifiRttTest
Calibrazione
Affinché il RTT Wi-Fi 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 dell'esplosione pari a 8, il KPI per una stima dell'intervallo dovrebbe ottenere 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 dell'antenna MIMO e la ripetizione del campo di addestramento lungo (LTF) influiscono sulla precisione. Con un normale 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 pari a due e le larghezze di banda elencate (160 MHz, 80 MHz, 40 MHz, 20 MHz), il KPI per una stima dell'intervallo dovrebbe raggiungere 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 assicurarti che l'implementazione della funzionalità funzioni correttamente, è necessario eseguire il test di calibrazione.
Ciò può essere ottenuto confrontando un intervallo di dati empirici reali con l'intervallo stimato del RTT a distanze crescenti. Per la conformità di base, devi convalidare la tua soluzione rispetto a un dispositivo di cui è nota la calibrazione RTT. La calibrazione dell'intervallo deve essere testata nelle seguenti condizioni:
- Un grande laboratorio aperto o un corridoio senza molti oggetti di metallo che potrebbero comportare un numero insolitamente elevato di percorsi multipli.
- Almeno un percorso o una traccia in linea d'aria (LOS) che si estende per 25 m.
- Indicatori con incrementi di 0,5 metri da un capo all'altro del percorso.
Un punto di fissaggio per un punto di accesso compatibile con RTT a un'estremità del binario, montato a 20 cm dal pavimento, e un supporto mobile per uno smartphone Android (o un altro dispositivo mobile Android in test) che può essere spostato lungo il binario e allineato con gli indicatori di 0,5 m, sempre a 20 cm dal pavimento.
Per ogni indicatore devono essere registrati 50 risultati di misurazione della distanza, insieme alla distanza dal punto di accesso. Le statistiche, come la media e la varianza dell'intervallo, devono essere calcolate per ogni posizione dell'indicatore.
Dai risultati del passaggio 5, è possibile tracciare un grafico per i dati empirici reali (asse x) rispetto all'intervallo stimato (asse y) e una linea di regressione di miglior adattamento stimata. La calibrazione ideale del dispositivo produrrà una linea con un gradiente di 1, 0 e un offset di 0 m sull'asse y. Deviazioni da questi valori sono accettabili se rientrano nel KPI per la larghezza di banda corrispondente. Se i risultati non rientrano nel KPI, la funzionalità del dispositivo deve essere ricalibrata in modo che i risultati rientrino nella specifica del KPI.