# communication_wifi
**Repository Path**: li-qiang-3/communication_wifi
## Basic Information
- **Project Name**: communication_wifi
- **Description**: Wi-Fi station/P2P/AP management, including enabling, disabling, scanning, connecting, and information obtaining operations | WiFi STA/P2P/AP模式的管理:开关、扫描、连接、WiFi信息
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1298
- **Created**: 2024-08-24
- **Last Updated**: 2024-09-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: aa, false
## README
# WLAN组件
- [简介](#section11660541593)
- [系统架构](#section342962219551)
- [目录](#section161941989596)
- [说明](#section1312121216216)
- [接口说明](#section1551164914237)
- [使用说明](#section129654513264)
- [相关仓](#section1371113476307)
## 简介
无线局域网(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。
```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**