应用有个需求是一键连接wifi,使用了系统提供的import { wifiManager } from '@kit.ConnectivityKit’来实现,但是不能连接wifi,不知道是哪里出了错误。
代码如下:
wifiLink(wifi:HotelWifiModel)
{
try {
let config: wifiManager.WifiDeviceConfig = {
ssid: wifi.ssid!,
preSharedKey: wifi.password!,
securityType: wifi.securityType ?? 0
}
wifiManager.addCandidateConfig(config).then(result => {
console.log('addCandidateConfig:' + result)
wifiManager.connectToCandidateConfig(result);
}).catch((err: number) => {
promptAction.showToast({ message: JSON.stringify(err) })
});
} catch (error) {
promptAction.showToast({ message: JSON.stringify(error) })
}
}
可以走到输出'addCandidateConfig:' + result这一步的,但是addCandidateConfig并不能使手机连接wifi并报错2501000。wifi的数据是根据wifiManager.getScanInfoList()和我们后台给的wifi名称和密码组合的,可以保证正确性。权限上ohos.permission.GET\_WIFI\_INFO、ohos.permission.LOCATION、ohos.permission.SET\_WIFI\_INFO都在module.json5中写好了。当前连接的wifi也并非传入的wifi,且已经尝试过的方法重新执行关闭及打开WIFI开关的操作和重启设备依然无效。
出现错误码‘2501000’的原因之一是当前样机已连接热点,请在执行connectToCandidateConfig方法前确保样机未连接到wifi即可(可删除网络后再次尝试运行上述代码)。
查询wifi连接状态:
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-wifimanager-V5\#wifimanagerisconnected9
connectToCandidateConfig官网参考链接:
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-wifimanager-V5\#wifimanagerconnecttocandidateconfig9