每次呼叫 WifiManager.addNetwork() 都會建立新設定檔,導致同一 SSID 出現多筆重複記錄。解決方式是先查詢現有設定,若已存在則直接使用。
public WifiConfiguration checkPreviousConfiguration(WifiConfiguration wc) {
List configs = wifiManager.getConfiguredNetworks();
for (WifiConfiguration config : configs) {
if (config.SSID != null && config.SSID.equals(wc.SSID)) {
return config; // 找到相同 SSID,回傳現有配置
}
}
return wc; // 不存在,回傳新建配置
}
// 使用時
WifiConfiguration wc = new WifiConfiguration();
wc.SSID = "\"MyNetwork\"";
// ... 設定其他參數 ...
int netId = wifiManager.addNetwork(checkPreviousConfiguration(wc));
wifiManager.enableNetwork(netId, true);
getConfiguredNetworks() 回傳已儲存的所有 WiFi 設定檔。SSID 時需注意雙引號包裹(如 "MyNetwork")。networkId 啟用,避免重複插入。此技巧適用於自動連線熱點、企業級 WiFi 部署等場景。