HarmonyOS wifi连接报错2501000?

应用有个需求是一键连接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开关的操作和重启设备依然无效。

阅读 456
1 个回答

出现错误码‘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

//参考demo如下:
import { wifiManager } from '@kit.ConnectivityKit';
import { promptAction } from '@kit.ArkUI';

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';

  async getLinkInfo() {
    const linkInfo = await wifiManager.getLinkedInfo()
    console.log(`获取到的linkInfo信息为:${JSON.stringify(linkInfo)}`)


    if (!wifiManager.isConnected()) {
      try {
        let config: wifiManager.WifiDeviceConfig = {
          ssid: 'wifi名称',
          preSharedKey: 'wifi密钥',
          securityType: 3
        }
        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) })

      }
    } else {
      promptAction.showToast({ message: '请断开wifi后再试' })
    }
  }

  build() {
    Column() {
      Button('linkInfo').onClick(() => {
        this.getLinkInfo()
        promptAction.showToast({ message: '方法已执行' })
      })
    }
    .width("100%")
    .height("100%")
    .justifyContent(FlexAlign.Center)
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
HarmonyOS
子站问答
访问
宣传栏