communication_wifi/README_zh.md
Neil Chen 90e79c98a6 remove file executable permission
Signed-off-by: Neil Chen <jingsi.chen@petalmail.com>
2022-07-18 23:03:07 +08:00

13 KiB
Raw Blame History

WLAN组件

简介

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

WLAN组件子系统为用户提供WLAN基础功能、P2Ppeer-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