Android 10 導入了 Wi-Fi Easy Connect 通訊協定 (又稱為裝置佈建通訊協定 (DPP)) 的支援。Wi-Fi Easy Connect 是由 Wi-Fi 聯盟 (WFA) 推出的 Wi-Fi 保護設定 (WPS) 替代方案。WPS 已於 Android 9 淘汰。
Wi-Fi 輕鬆連線可讓您以簡單又安全的方式執行下列操作:
- 將 Wi-Fi 裝置 (包括無頭裝置) 連線至網路,不必輸入密碼。
- 不必輸入密碼或輸入密碼,就能加入 Wi-Fi 網路。
啟動與驗證是使用 URI 設定,URI 透過掃描 QR code 取得,或是使用 BLE 或 NFC 等頻外模式。
Wi-Fi Easy Connect 會使用加密通道,在裝置之間傳送 Wi-Fi 憑證,而且由於使用的是公開動作框架,裝置可以使用現有的存取點。
Android 10 僅在啟動者模式下支援 Wi-Fi Easy Connect (不支援回應者模式)。支援下列運作模式:
- Initiator-Configurator:掃描裝置的 QR code,將網路憑證傳送至新裝置。
- 發起者-受試者:掃描網路 QR code 即可加入網路。
Android 10 支援 WPA2 的預先共用金鑰 (PSK) 通訊協定,以及 WPA3 的同時驗證對等 (SAE) 通訊協定。
Wi-Fi Easy Connect 僅支援用戶端模式 (不支援 SoftAP 模式)。
實作
如要支援 Wi-Fi Easy Connect,請實作 Android 開放原始碼計畫 (AOSP) 中提供的申請者介面。視實作的介面而定,這會位於:
hardware/interfaces/wifi/supplicant/1.2/
或 HIDL 的較新版本hardware/interfaces/wifi/supplicant/aidl/
AIDL 專用
如要支援 DPP,必須符合下列條件:
支援 DPP 的 Linux kernel 修補程式:
- cfg80211
- nl80211
wpa_supplicant
支援 DPP支援 DPP 的 Wi-Fi 驅動程式
支援 DPP 的 Wi-Fi 韌體
公開 API 可供 Android 10 中的應用程式使用:
WifiManager#isEasyConnectSupported
:查詢架構,判斷裝置是否支援 Wi-Fi Easy Connect。Activity#startActivityForResult(ACTION_PROCESS_WIFI_EASY_CONNECT_URI)
:允許應用程式將 Wi-Fi 輕鬆連線功能整合至新手上路/設定流程。
啟用 Wi-Fi 輕鬆連線
如要在 Android 架構中啟用 Wi-Fi 輕鬆連線功能,請在 wpa_supplicant
設定檔 android.config
中加入 CONFIG_DPP
編譯選項:
# Easy Connect (Device Provisioning Protocol - DPP) CONFIG_DPP=y
驗證
如要測試實作成果,請執行下列測試。
單元測試
執行 DppManagerTest
以驗證 DPP 功能旗標的行為。
atest DppManagerTest
VTS 測試
如果已實作 HIDL 介面,請執行 VtsHalWifiSupplicantV1_2TargetTest
來測試申請者 HAL 1.2 版的行為。
如果已實作 AIDL 介面,請執行 VtsHalWifiSupplicantStaIfaceTargetTest
來測試申請者 HAL 的行為。