Android 9 的 Wi-Fi 往返時間 (RTT) 功能可讓支援的裝置測量與其他支援裝置的距離,無論是存取點 (AP) 或 Wi-Fi Aware 同端裝置 (如果裝置支援 Wi-Fi Aware)。這項功能以 IEEE 802.11mc 和 IEEE 802.11az 通訊協定建構而成 (適用於 Android 15),可讓應用程式使用強化定位精確度和辨識功能。
範例和來源
如要使用這項功能,請實作供應商 HAL 介面。在 Android 14 以上版本中,供應商 HAL 介面是以 AIDL 定義。在 Android 13 及以下版本中,供應商 HAL 介面是以 HIDL 定義。在 Android 8.0 中,HIDL 取代了先前的硬體抽象層 (HAL) 結構,這個結構用於指定類型和方法呼叫,並收集至介面和套件中,以便簡化實作。
按照 Wi-Fi 介面操作,使用 Wi-Fi RTT 功能。視實作的介面而定,這會是:
- AIDL:
hardware/interfaces/wifi/aidl
- HIDL:
hardware/interfaces/wifi/1.0
以上版本。
您可以參考舊版 Wi-Fi HAL,瞭解該版本與 AIDL 和 HIDL 介面之間的關聯:hardware/libhardware_legacy/+/main/include/hardware_legacy/rtt.h。
實作
如要實作 Wi-Fi RTT,您必須提供架構和 HAL/韌體支援:
架構:
- Android 開放原始碼計畫程式碼
- 啟用 Wi-Fi RTT:需要功能標記
Wi-Fi RTT (IEEE 802.11mc 或 IEEE 802.11az) HAL 支援 (這表示韌體支援)
如要實作這項功能,請實作 Wi-Fi AIDL 或 HIDL 介面,並啟用功能旗標:
在
device/<oem>/<device>
的device.mk
中,修改PRODUCT_COPY_FILES
環境變數,以便支援 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
否則,AOSP 中已包含這項功能所需的所有內容。
MAC 隨機化
為提升隱私權,Wi-Fi RTT 交易期間使用的 MAC 位址必須隨機產生,也就是說,該位址不得與 Wi-Fi 介面的原生 MAC 位址相符。不過,在某些例外情況下,當裝置與無線基地台建立關聯時,裝置可能會使用與該無線基地台或其他無線基地台的任何 RTT 交易相關聯的 MAC 位址。
驗證
這項功能適用於 Android 相容性測試套件 (CTS) 測試。CTS 會偵測何時啟用這項功能,並自動納入相關測試。您也可以使用供應商測試套件 (VTS) 測試這項功能。
單元測試
系統會使用以下方式執行 Wi-Fi RTT 套件測試:
服務測試:
atest com.android.server.wifi.rtt
管理員測試:
atest android.net.wifi.rtt
CTS
這項功能適用於 Android 相容性測試套件 (CTS) 測試。CTS 會偵測何時啟用這項功能,並自動納入相關測試。存取點必須支援 Wi-Fi RTT (IEEE 802.11mc),且必須位於測試裝置的範圍內。
您可以透過以下方式觸發 CTS 測試:
atest WifiRttTest
校準
為確保 Wi-Fi RTT 效能良好,802.11mc 或 802.11az 通訊協定中傳回的範圍應符合本節所述主要成效指標 (KPI) 的準確度。
針對 11mc 通訊協定,在所列頻寬 (80 MHz、40 MHz、20 MHz) 和 8 個突發大小的情況下,範圍估算值的 KPI 應可在 90% 的誤差百分位達到以下準確度。
- 80 MHz:2 公尺
- 40 MHz:4 公尺
- 20 MHz:8 公尺
對於 11az 通訊協定,天線 MIMO 設定和長訓練場 (LTF) 重複會影響準確度。對於一般手機 (使用 2 個天線) 和存取點 (4 天線),系統則提供 2x4 MIMO 的設定。對於使用 2 倍 LTF 重複因子的這類設定,以及所列頻寬 (160 MHz、80 MHz、40 MHz、20 MHz),範圍估算的 KPI 預期可在 90 百分位數的誤差範圍內達到以下準確度。
- 160 MHz:0.5 公尺
- 80 MHz:1 公尺
- 40 MHz:2 公尺
- 20 MHz:4 公尺
為確保功能導入作業正常運作,您必須進行校正測試。
方法是比較基準真相範圍與 RTT 預估範圍,並逐漸增加距離。如要進行基本相容性測試,您應針對已知已校準 RTT 的裝置驗證解決方案。應在下列條件下測試範圍校正功能:
- 大型開放式實驗室,或沒有太多金屬物品的走廊,因為這類環境可能會導致多路徑發生率異常偏高。
- 至少有 25 公尺的視線軌跡或路徑。
- 從跑道一端到另一端,每隔 0.5 公尺放置標記。
在軌道的一端,距離地面 20 公分處安裝可支援 RTT 的存取點,並提供可移動的 Android 手機 (或其他測試中的 Android 行動裝置) 固定架,可沿著軌道移動,並與 0.5 公尺標記對齊,同樣距離地面 20 公分。
每個標記應記錄 50 個測距結果,以及與存取點的距離。您應為每個標記位置計算統計資料,例如範圍平均值和變異數。
根據步驟 5 的結果,您可以繪製實際值 (x 軸) 與預估範圍 (y 軸) 的圖表,並估算最佳擬合回歸線。理想的裝置校準結果會產生漸層 1.0 的線條,並在 y 軸上偏移 0.0 公尺。如果這些值落在對應頻寬的 KPI 內,則可以接受這些值的偏差。如果結果超出 KPI 範圍,則應重新校正裝置功能,讓結果符合 KPI 規格。