Wi-Fi Direct 功能也稱為 Wi-Fi P2P,可讓支援的裝置使用 Wi-Fi Direct 協定直接探索彼此並連線,不必存取網際網路或行動網路。這項功能以 Wi-Fi 聯盟 (WFA) 的 Wi-Fi Direct 規格為基礎,可讓不在網路上的信任裝置和應用程式分享高處理量的資料。
範例和來源
如要使用這項功能,裝置製造商必須實作 Wi-Fi 供應商和 Supplicant HAL 介面。
在 Android 13 中,Supplicant 介面會使用 AIDL 定義 HAL。在 Android 14 以上版本中,供應商 HAL 介面會使用 AIDL。在 Android 12 以下版本中,Supplicant 和供應商 HAL 介面是使用 HIDL 定義。
如要使用 Wi-Fi Direct 功能,必須採用下列 Wi-Fi HAL 介面:
hardware/interfaces/wifi/aidl
或,hardware/interfaces/wifi/1.3
以上hardware/interfaces/wifi/supplicant/aidl
或,hardware/interfaces/wifi/supplicant/1.2
以上
實作
裝置製造商必須提供架構和 HAL/韌體支援:
- 架構:
- Android 開放原始碼計畫程式碼
- 啟用 Wi-Fi Direct:需要功能旗標
- Wi-Fi Direct (P2P) HAL 支援 (表示韌體支援)
如要實作這項功能,裝置製造商必須實作 Wi-Fi HIDL 或 AIDL 介面,並啟用 Wi-Fi Direct 的功能旗標。在 device/<oem>/<device>
中的 device.mk
內,修改 PRODUCT_COPY_FILES
環境變數,加入對 Wi-Fi Direct 功能的支援:
```
PRODUCT_COPY_FILES +=
frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml
```
Android 開放原始碼計畫 (AOSP) 包含支援 Wi-Fi Direct 的所有其他規定。
MAC 隨機化
Android 規定 Wi-Fi Direct 裝置位址和介面位址必須隨機產生。必須與裝置的真實 MAC 位址不同,且須符合下列規定:
- 如果沒有儲存的永續群組,介面建立時必須隨機產生 Wi-Fi Direct 裝置位址;否則裝置位址必須繼續使用上次產生的 MAC 位址。
- 建立連線時,Wi-Fi Direct 介面位址 (又稱群組位址) 必須隨機產生。
Wi-Fi Direct MAC 隨機化功能是在「wpa_supplicant」中實作,並由 p2p_device_random_mac_addr
和 p2p_interface_random_mac_addr
這兩項設定控制。
如要啟用這項功能,裝置製造商必須:
- 實作 Wi-Fi Supplicant
ISupplicantP2pIface::setMacRandomization
API。 視實作的介面而定,這項作業會在下列位置進行:hardware/interface/wifi/supplicant/1.2
for HIDL- 適用於 AIDL 的
hardware/interface/wifi/supplicant/aidl
- 在裝置自訂疊加層中,將
config_wifi_p2p_mac_randomization_supported
設為「true」。
驗證
Android 提供一系列單元測試、Compatibility Test Suite (CTS) 測試和 CTS Verifier 測試,可驗證 Wi-Fi Direct 功能。您也可以使用供應商測試套件 (VTS) 測試 Wi-Fi Direct。
單元測試
使用下列測試驗證 Wi-Fi Direct 套件。
服務測試:
atest com.android.server.wifi.p2p
管理員測試:
atest android.net.wifi.p2p
Compatibility Test Suite (CTS) 測試
使用 CTS 測試驗證 Wi-Fi Direct 功能。CTS 會偵測功能是否已啟用,並自動納入相關測試。
如要觸發 CTS 測試,請執行下列指令:
% atest android.net.wifi.p2p.cts
CTS 驗證器測試
CTS 驗證器測試會使用兩部裝置 (測試裝置和已知良好的裝置) 驗證 Wi-Fi Direct 行為。如要執行測試,請開啟 CTS Verifier,然後前往「Wi-Fi Direct Tests」部分。