Android 10 引入了對 Wi-Fi Easy Connect 協定(也稱為裝置配置協定 (DPP))的支援。 Wi-Fi Easy Connect由 Wi-Fi 聯盟 (WFA) 推出,作為 Wi-Fi 保護設定 (WPS) 的替代方案。 WPS 在 Android 9 中已棄用。
Wi-Fi Easy Connect 提供了一種簡單且安全的方法來:
- 將 Wi-Fi 裝置(包括無頭裝置)連接到網絡,無需輸入密碼。
- 無需知道或輸入密碼即可加入 Wi-Fi 網路。
引導和身份驗證使用 URI 進行配置,該 URI 透過掃描 QR 碼(使用相機)獲取,或使用帶外配置,例如使用 BLE 或 NFC。
Wi-Fi Easy Connect 使用加密通道在裝置之間傳送 Wi-Fi 憑證,並且由於使用公共操作框架,因此裝置可以使用現有存取點。
Android 10 僅在發起者模式下支援 Wi-Fi Easy Connect(不支援響應者模式)。支援以下操作模式:
- 啟動器配置器:透過掃描 QR 碼將網路憑證傳送到新裝置。
- 發起者-參與者:透過掃描網路二維碼加入網路。
Android 10 支援 WPA2 的預先共用金鑰 (PSK) 協定和 WPA3 的同時驗證 (SAE) 協定。
Wi-Fi Easy Connect 僅在用戶端模式下支援(不支援 SoftAP 模式)。
執行
若要支援 Wi-Fi Easy Connect,請實作 Android 開源專案 (AOSP) 中提供的請求者介面。根據所實現的接口,它位於:
支援 DPP 需要滿足以下條件:
支援 DPP 的 Linux 核心補丁:
- cfg80211
- NL80211
支援 DPP 的
wpa_supplicant
支援 DPP 的 Wi-Fi 驅動程式
支援 DPP 的 Wi-Fi 韌體
Android 10 中提供了公共 API 供應用程式使用:
-
WifiManager#isEasyConnectSupported
:查詢框架以確定裝置是否支援 Wi-Fi Easy Connect。 -
Activity#startActivityForResult(ACTION_PROCESS_WIFI_EASY_CONNECT_URI)
:允許應用程式將 Wi-Fi Easy Connect 整合到其入門/設定流程中。
啟用 Wi-Fi 輕鬆連接
若要在 Android 框架中啟用 Wi-Fi Easy Connect,請在wpa_supplicant
設定檔android.config
中包含CONFIG_DPP
編譯選項:
# Easy Connect (Device Provisioning Protocol - DPP) CONFIG_DPP=y
驗證
若要測試您的實現,請執行以下測試。
單元測試
執行DppManagerTest
以驗證 DPP 功能標誌的行為。
atest DppManagerTest
整合測試(ACTS)
若要執行整合測試,請使用 Android Comms Test Suite (ACTS) 檔案WifiDppTest.py
,該檔案位於tools/test/connectivity/acts_tests/tests/google/wifi
。
VTS 測試
如果實作了 HIDL 接口,請執行VtsHalWifiSupplicantV1_2TargetTest
來測試請求者 HAL v1.2 的行為。
如果實作了 AIDL 接口,請執行VtsHalWifiSupplicantStaIfaceTargetTest
來測試請求者 HAL 的行為。