• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

wkin

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

ip网络工具

import { Log } from '@abner/log';
import wifiManager from '@ohos.wifiManager';
import { StringUtils } from '../StringUtils';

class wifiManagerUtil {
  isWifiActive(): boolean {
    try {
      let isWifiActive = wifiManager.isWifiActive();
      return isWifiActive
    } catch (error) {
      return false
    }
  }

  getGateway(): string | null {
    try {
      let info = wifiManager.getIpInfo();
      let gateway =
        (info.gateway >>> 24) + "." + (info.gateway >> 16 & 0xFF) + "." + (info.gateway >> 8 & 0xFF) + "." +
          (info.gateway & 0xFF);
      return gateway;
    } catch (error) {
      console.error("failed:" + JSON.stringify(error));
      return null
    }
  }

  getIpAddress(): string | null {
    try {
      let info = wifiManager.getIpInfo();
      let IpAddress =
        (info.ipAddress >>> 24) + "." + (info.ipAddress >> 16 & 0xFF) + "." + (info.ipAddress >> 8 & 0xFF) + "." +
          (info.ipAddress & 0xFF);
      return IpAddress;
    } catch (error) {
      console.error("failed:" + JSON.stringify(error));
      return null
    }
  }

  async getConnectWiFiInfo() {
    try {
      let info = await wifiManager.getLinkedInfo();
      return info;
    } catch (error) {
      console.error("getConnectWiFiInfo failed:" + JSON.stringify(error));
      return null
    }
  }

  /**
   * 获取wifi列表
   * @returns
   */
  getScanList() {
    try {
      let scanInfoList = wifiManager.getScanInfoList();
      console.info('scanInfoList:' + JSON.stringify(scanInfoList));
      let len = scanInfoList.length;
      console.log('wifi received scan info: ' + len);
      if (len > 0) {
        for (let i = 0; i < len; ++i) {
          console.info('getScanList ssid: ' + scanInfoList[i].ssid);
          console.info('getScanList bssid: ' + scanInfoList[i].bssid);
          console.info('getScanList capabilities: ' + scanInfoList[i].capabilities);
          console.info('getScanList securityType: ' + scanInfoList[i].securityType);
          console.info('getScanList rssi: ' + scanInfoList[i].rssi);
          console.info('getScanList band: ' + scanInfoList[i].band);
          console.info('getScanList frequency: ' + scanInfoList[i].frequency);
          console.info('getScanList channelWidth: ' + scanInfoList[i].channelWidth);
          console.info('getScanList timestamp: ' + scanInfoList[i].timestamp);
        }

        scanInfoList = scanInfoList.filter((item: wifiManager.WifiScanInfo) => {
          return !StringUtils.isNullOrEmpty(item.ssid)
        })

        return scanInfoList;
      } else {
        return [];
      }
    } catch (error) {
      console.error('getScanList failed:' + JSON.stringify(error));
      return [];
    }
  }

  /**
   *  连接网络
   * @param wifiSsid
   * @param psw
   * @param securityType
   */
  async connectNetwork(wifiSsid: string, psw: string, securityType: number): Promise<void> {
    // securityType 加密类型默认:Pre-shared key (PSK)加密类型
    let deviceConfig: wifiManager.WifiDeviceConfig = {
      ssid: wifiSsid,
      preSharedKey: psw,
      // isHiddenSsid: false,
      securityType: securityType
    }

    try {
      //添加候选网络配置
      let resultID: number = await wifiManager.addCandidateConfig(deviceConfig)
      // 连接网络
      wifiManager.connectToCandidateConfig(resultID);
      // 连接成功之后跳转相机操作

    } catch (err) {
      Log.error(`addDeviceConfig fail err is ${JSON.stringify(err)}`)
    }
  }
}

export const WifiManagerUtil = new wifiManagerUtil()

posted on 2026-01-16 16:54  带头大哥d小弟  阅读(1)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3