harmony 鸿蒙STA模式开发指南

  • 2025-06-12
  • 浏览 (4)

STA模式开发指南

简介

Wi-Fi STA模式(Station Mode,站点模式)是无线设备作为客户端接入无线局域网(WLAN)的工作模式。在该模式下,设备(如手机、电脑、平板等)通过连接到接入点(AP,Access Point)或无线路由器,实现对网络的访问。

场景介绍

接口说明

完整的JS API说明以及示例代码请参考:STA接口

接口具体说明如下表所示。

接口名 功能描述
isWifiActive() 查询WLAN开关是否已使能。
addCandidateConfig() 添加候选网络配置,使用前先使能WLAN。
connectToCandidateConfig() 应用使用该接口连接到自己添加的候选网络。
isConnected() 查询WLAN是否已连接。
removeCandidateConfig() 移除候选网络配置。
getCandidateConfigs() 获取候选网络配置。
on(type: ‘wifiStateChange’) 注册WLAN状态改变事件。
off(type: ‘wifiStateChange’) 取消注册WLAN状态改变事件。
on(type: ‘wifiConnectionChange’) 注册WLAN连接状态改变事件。
off(type: ‘wifiConnectionChange’) 取消注册WLAN连接状态改变事件。

主要场景开发步骤

判断Wi-Fi状态

  1. 导入需要的Wi-Fi模块。
  2. 需要SystemCapability.Communication.WiFi.STA系统能力。
  3. 需要申请权限ohos.permission.GET_WIFI_INFO。
  4. 开启设备Wi-Fi。
  5. 示例代码:
  import { wifiManager } from '@kit.ConnectivityKit';
  try {
  let recvPowerNotifyFunc = (result:number) => {
    let wifiState = "";
      switch (result) {
      case 0:
      wifiState += 'DISABLEING';
      break;
      case 1:
      wifiState += 'DISABLED';
      break;
      case 2:
      wifiState += 'ENABLING';
      break;
      case 3:
      wifiState += 'ENABLED';
      break;
      default:
      wifiState += 'UNKNOWN STATUS';
      break;
    }
  }
    // 监听wifi当前状态
    wifiManager.on("wifiStateChange", recvPowerNotifyFunc);
    // 判断wifi是否打开
    let isWifiActive = wifiManager.isWifiActive();
    if (!isWifiActive) {
      console.info("wifi not enable"); // 请先手动打开WiFi
      return;
    }

    wifiManager.off("wifiStateChange", recvPowerNotifyFunc);
}

建立Wi-Fi连接

  1. 导入需要的Wi-Fi模块。
  2. 开启设备的Wi-Fi。
  3. 需要SystemCapability.Communication.WiFi.STA系统能力。
  4. 需要申请权限ohos.permission.GET_WIFI_INFO,ohos.permission.SET_WIFI_INFO。
  5. 示例代码:
  import { wifiManager } from '@kit.ConnectivityKit';

  try {
      let recvWifiConnectionChangeFunc = (result:number) => {
      console.info("Receive wifi connection change event: " + result);
    }

    let config:wifiManager.WifiDeviceConfig = {
      ssid : "****",
      bssid : "****",
      preSharedKey : "****",
      securityType : 0
	  }

      // 更新当前WiFi连接状态
    wifiManager.on("wifiConnectionChange", recvWifiConnectionChangeFunc);
      // 添加候选网络配置
	  wifiManager.addCandidateConfig(config).then(result => {
      // 连接指定网络
      wifiManager.connectToCandidateConfig(result);
    });

    if (!wifiManager.isConnected()) {
        console.info("wifi not conneted");
    }
    // 获取连接信息
    wifiManager.getLinkedInfo().then(data => {
      console.info("get wifi linked info: " + JSON.stringify(data));
    })
    // 查询信号强度
    let level = wifiManager.getSignalLevel(rssi,band);
    console.info("level:" + JSON.stringify(level));

    // 取消注册,停止更新当前WiFi连接状态
    wifiManager.off("wifiConnectionChange", recvWifiConnectionChangeFunc);
  }
  1. WiFi连接状态值,详情请参考ConnState
  2. 错误码详情请参见WIFI错误码

你可能感兴趣的鸿蒙文章

harmony 鸿蒙WLAN

harmony 鸿蒙P2P模式开发指南

harmony 鸿蒙Wi-Fi扫描开发指南

harmony 鸿蒙WLAN服务开发概述

0  赞