Wi-Fi 連線

Wi-Fi 偵測 Android 8.0 新增的一項功能,可讓支援裝置探索、連線及存取 以及範圍 (已加至 Android 9 中) 彼此直接連線 在沒有網際網路或行動網路連線的情況下,使用 Wi-Fi Aware 通訊協定。這個 功能內建於 Wi-Fi Alliance (WFA) Wi-Fi Aware 規格 (2.0、3.0、3.1 和 4.0 版) 讓使用者輕鬆分享高處理量資料 不受信任的裝置和應用程式之間存取。

範例和來源

如要使用這項功能,裝置製造商應實作 Wi-Fi 供應商 HAL。 在 Android 14 以上版本中 供應商 HAL 介面是以 AIDL 定義。 對於 Android 13 以下版本, 供應商 HAL 介面是以 HIDL 定義。

按照 Wi-Fi 介面操作,使用 Wi-Fi 感知功能。 視實作的介面而定,可能是:

  • AIDL:hardware/interfaces/wifi/aidl
  • HIDL:hardware/interfaces/wifi/1.2 以上版本

您可以參考舊式 Wi-Fi HAL,瞭解 Wi-Fi HAL 與 AIDL 和 HIDL 介面: hardware/libhardware_legacy/+/main/include/hardware_legacy/wifi_nan.h

實作

裝置製造商必須同時提供架構和 HAL/韌體支援:

  • 架構:
    • Android 開放原始碼計畫程式碼
    • 啟用感知:需要功能旗標和建構標記
  • Wi-Fi Aware (NAN) HAL 支援 (暗示韌體支援)

為了實作這項功能,裝置製造商會實作 Wi-Fi 介面 並啟用兩個功能旗標

  • BoardConfig.mkBoardConfig-common.mk位於以下地點的: device/<oem>/<device>,請新增下列標記:

    WIFI_HIDL_FEATURE_AWARE := true
    
  • device/<oem>/<device> 中的 device.mk 中,修改 PRODUCT_COPY_FILES 環境變數,納入對 Wi-Fi 的支援 感知功能:

    PRODUCT_COPY_FILES +=
    frameworks/native/data/etc/android.hardware.wifi.aware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.aware.xml
    

Wi-Fi Aware 範圍涵蓋使用 IEEE 802.11mc 通訊協定的對等互連裝置。 也稱為「封包往返時間」(RTT)。Wi-Fi Aware 的這項子功能是 裝置必須處於有條件狀態 才能支援 Wi-Fi RTT 功能 裝置,以便同時支援 Wi-Fi Aware 和 Wi-Fi RTT。詳情請參閱 Wi-Fi RTT

在其他情況下,Android 開放原始碼計畫已納入這項功能所需的一切資訊。

如果 WIFI_HIDL_FEATURE_AWARE WIFI_HAL_INTERFACE_COMBINATIONS 旗標若需更多資訊,請參閲 Wi-Fi 多介面並行

MAC 隨機化

Android 需要 Wi-Fi Aware 探索 (NMI) 和資料的 MAC 位址 介面 (NDP) 為隨機化,且與實際 MAC 位址不同 完整連結MAC 位址必須符合下列條件:

  • 啟用或重新啟用 Wi-Fi Aware 時隨機選取。
  • 啟用 Wi-Fi Aware 後,必須輸入一般 MAC 位址隨機化的 MAC 位址 設定間隔 NanConfigRequest.macAddressRandomizationIntervalSec 參數。這個 預設為 30 分鐘。

暫停並繼續

在 Android 14 以上版本中,Wi-Fi Aware 可支援 讓具有特殊權限的應用程式暫停及恢復主動探索工作階段的功能 (包括與這些工作階段相關的所有資料路徑)。相關支援 功能可讓裝置更快恢復探索工作階段,並減少耗電量,因為 則可暫停探索工作階段。

如果裝置支援這種暫停和恢復功能,韌體會暫停 具有特殊權限的應用程式暫停探索工作階段時,才會啟動 Wi-Fi Aware 工作階段。 處於停權狀態的探索工作階段時,裝置不會傳輸 或接收該工作階段的任何影格,包括該工作階段中的任何有效的 NDP 會很有幫助如果所有探索工作階段都遭到停權,裝置就不會傳輸 或接收任何 Wi-Fi 訊號訊號。

當具有特殊權限的應用程式繼續執行已暫停的探索工作階段時,架構 會將工作階段傳回至先前的狀態,包括所有相關聯的 NDP 工作階段。繼續執行已暫停的探索工作階段時,繼續執行速度較快 Wi-Fi Aware 並建立新的探索工作階段。

為了支援暫停及繼續探索工作階段的功能,裝置 製造商必須提供 HAL 和韌體支援詳情請參閱 IWifiNanIface.java

裝置製造商可使用頻外通訊 (例如 BLE) 多部裝置上的同步處理暫停和繼續同步處理。

驗證

Android 提供一系列的單元測試 Compatibility Test Suite (CTS) 測試 透過 CTS 驗證器測試,驗證 Wi-Fi 是否正常運作 感知功能。您也可以使用 供應商測試套件 (VTS)

單元測試

Wi-Fi Aware 套件測試是使用以下方式執行:

服務測試:

atest com.android.server.wifi.aware

管理員測試:

atest android.net.wifi.aware

Compatibility Test Suite (CTS) 測試

透過 CTS 測試來驗證 Wi-Fi 感知功能。CTS 會偵測 並自動納入相關測試。

您可以透過以下方式觸發 CTS 測試:

atest SingleDeviceTest

CTS Verifier 測試

CTS 驗證器測試使用兩種裝置來驗證 Wi-Fi 感知行為:測試 和已知良好裝置。如要執行測試,請開啟 CTS Verifier 並 前往「Wi-Fi 感知測試」部分。