connectNetwork(scanInfo: wifiManager.WifiScanInfo, psw: string) {
Logger.debug(TAG, `connectNetwork scanInfo=${JSON.stringify(scanInfo)}`)
let networkId = -1;
try {
let config: wifiManager.WifiDeviceConfig = {
ssid: scanInfo.ssid,
preSharedKey: psw,
securityType: scanInfo.securityType,
}
wifiManager.addCandidateConfig(config, (error, result) => {
console.info(TAG, "addCandidateConfig result:" + JSON.stringify(result));
networkId = result;
try {
let connectResult = wifiManager.connectToCandidateConfig(networkId);
console.info(TAG, "connectToCandidateConfig result:" + JSON.stringify(connectResult));
} catch (error) {
console.error(TAG, "connectToCandidateConfig failed:" + JSON.stringify(error));
}
});
} catch (error) {
console.error(TAG, "addCandidateConfig failed:" + JSON.stringify(error));
}
}
报错:
connectToCandidateConfig failed: 2501000
将connectToCandidateConfig的trycatch拿到addCandidateConfig外面之后报错401,但是过了一会都能链接上网络。
出现错误码2501000的原因之一是当前设备已连接热点,请在执行connectToCandidateConfig方法前确保样机未连接到wifi即可(可删除网络后再次尝试运行上述代码)。