# WLAN组件 - [简介](#section11660541593) - [系统架构](#section342962219551) - [目录](#section161941989596) - [说明](#section1312121216216) - [接口说明](#section1551164914237) - [使用说明](#section129654513264) - [相关仓](#section1371113476307) ## 简介 无线局域网(Wireless Local Area Networks,WLAN),是通过无线电、红外光信号或者其他技术发送和接收数据的局域网,用户可以通过WLAN实现结点之间无物理连接的网络通讯。常用于用户携带可移动终端的办公、公众环境中。 WLAN组件子系统为用户提供WLAN基础功能、P2P(peer-to-peer)功能和WLAN消息通知的相应服务,让应用可以通过WLAN和其他设备互联互通。 ## 系统架构 **图 1** WLAN组件架构图 ![](figures/zh-cn_image_0000001115710400.png) ## 目录 ``` /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。 ```js import wf from '@ohos.wifi'; // 导入js接口类 ``` (一)获取WLAN状态 1. 调用isWifiActive​\(\)接口查询WLAN是否打开。 ```js var isWifiActive = wf.isWifiActive(); // 若WLAN打开,返回true,否则false ``` (二)发起扫描并获取结果 1. 调用scan​\(\)接口发起扫描。 2. 调用getScanInfoList​\(\)接口获取扫描结果。 ```js // 调用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。 ```js // 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); ``` ## 相关仓 [分布式软总线子系统](https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/%E5%88%86%E5%B8%83%E5%BC%8F%E8%BD%AF%E6%80%BB%E7%BA%BF%E5%AD%90%E7%B3%BB%E7%BB%9F.md) **communication\_wifi**