57 Star 47 Fork 479

OpenHarmony / communication_wifi

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README_zh.md 13.08 KB
一键复制 编辑 原始数据 按行查看 历史
c01dface 提交于 2022-07-18 23:03 . remove file executable permission

WLAN组件

简介

无线局域网(Wireless Local Area Networks,WLAN),是通过无线电、红外光信号或者其他技术发送和接收数据的局域网,用户可以通过WLAN实现结点之间无物理连接的网络通讯。常用于用户携带可移动终端的办公、公众环境中。

WLAN组件子系统为用户提供WLAN基础功能、P2P(peer-to-peer)功能和WLAN消息通知的相应服务,让应用可以通过WLAN和其他设备互联互通。

系统架构

图 1 WLAN组件架构图

目录

/foundation/communication/wifi
├── figures            # 图片资源目录
├── interfaces         # 接口适配目录
│   ├── innerkits      # 内部接口适配目录
│   └── kits           # WLAN组件接口的适配代码存放目录
├── services           # service适配目录
│   └── wifi_standard  # service实现目录
├── tests              # 测试代码目录
│   └── wifi_standard  # service实现模块测试代码
└── utils              # 实用函数目录
    ├── inc            # 实用函数头文件目录
    └── src            # 实用函数实现目录

说明

接口说明

WLAN基础功能由@ohos.wifi类提供,其接口(JS接口)说明如下。

表 1 WLAN基础功能的主要接口(JS接口)

接口名

描述

所需权限

function enableWifi(): boolean

打开WLAN。

NA

function disableWifi(): boolean

关闭WLAN。

NA

function isWifiActive(): boolean

查询WLAN是否处于打开状态。

NA

function scan(): boolean

发起WLAN扫描。

NA

function getScanInfos(): Promise<Array<WifiScanInfo>>

function getScanInfos(callback: AsyncCallback<Array<WifiScanInfo>>): void

获取WLAN扫描结果,接口可采用promise或callback方式调用。

NA

function addDeviceConfig(config: WifiDeviceConfig): Promise<number>

function addDeviceConfig(config: WifiDeviceConfig, callback: AsyncCallback<number>): void

添加WLAN热点的配置信息,接口可采用promise或callback方式调用。

NA

function connectToNetwork(networkId: number): boolean

连接到WLAN网络。

NA

function connectToDevice(config: WifiDeviceConfig): boolean

通过配置信息连接到WLAN网络。

NA

function disconnect(): boolean

断开WLAN连接。

NA

function getSignalLevel(rssi: number, band: number): number

获取WLAN信号强度。

NA

使用说明

在使用WLAN JS接口前需导入接口类@ohos.wifi。

import wf from '@ohos.wifi'; // 导入js接口类

(一)获取WLAN状态

  1. 调用isWifiActive​()接口查询WLAN是否打开。

    var isWifiActive = wf.isWifiActive(); // 若WLAN打开,返回true,否则false

(二)发起扫描并获取结果

  1. 调用scan​()接口发起扫描。

  2. 调用getScanInfoList​()接口获取扫描结果。

    // 调用WLAN扫描接口
    var isScanSuccess = wf.scan(); // true
    // 延迟一段时间
    // 获取扫描结果
    
    wf.getScanInfos((err, result) => {
        if (err) {
            console.error("get scan info error");
            return;
        }
    
        var len = Object.keys(result).length;
        console.log("get scan info number: " + len);
        for (var i = 0; i < len; ++i) {
            console.info("ssid: " + result[i].ssid);
            console.info("bssid: " + result[i].bssid);
            console.info("securityType: " + result[i].securityType);
            console.info("rssi: " + result[i].rssi);
            console.info("band: " + result[i].band);
            console.info("frequency: " + result[i].frequency);
            console.info("timestamp: " + result[i].timestamp);
        }
    });

(三)连接WLAN

  1. 调用addDeviceConfig添加配置,然后通过返回的配置id连接WLAN或调用connectToDevice通过配置直接连接WLAN。

    // WLAN配置信息
    var config = {
        "ssid":"test_wifi",
        "bssid":"",
        "preSharedKey":"12345678",
        "isHiddenSsid":false,
        "securityType":3,
    }
    方式一:
    // 添加配置
    wf.addDeviceConfig(config, (err, result) => {
        if (err) {
            console.error("add device config error");
            return;
        }
        console.info("config id: " + result);
        // 通过配置id连接WLAN
        wf.connectToNetwork(result);
    });
    方式二:
    // 通过配置信息直接连接WLAN
    wf.connectToDevice(config);

相关仓

分布式软总线子系统

communication_wifi

1
https://gitee.com/openharmony/communication_wifi.git
git@gitee.com:openharmony/communication_wifi.git
openharmony
communication_wifi
communication_wifi
master

搜索帮助