回复
聊一聊鸿蒙系统的WLAN组件
风在云颠
发布于 2021-9-8 18:00
浏览
0收藏
简介
无线局域网(Wireless Local Area Networks,WLAN),是通过无线电、红外光信号或者其他技术发送和接收数据的局域网,用户可以通过WLAN实现结点之间无物理连接的网络通讯。常用于用户携带可移动终端的办公、公众环境中。
WLAN组件子系统为用户提供WLAN基础功能、P2P(peer-to-peer)功能和WLAN消息通知的相应服务,让应用可以通过WLAN和其他设备互联互通。
系统架构
图 1 WLAN组件架构图
目录
/foundation/communication/wifi
├── figures # 图片资源目录
├── interfaces # 接口适配目录
│ ├── innerkits # Java接口适配目录
│ └── kits # WLAN组件接口的适配代码存放目录
└── services # service适配目录
└── wifi_standard # service实现目录
说明
接口说明
WLAN基础功能由@ohos.wifi_native_js类提供,其接口(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接口前需要导入接口类。
import wifi_native_js from '@ohos.wifi_native_js'; // 导入js接口类
(一)获取WLAN状态
-
调用isWifiActive()接口查询WLAN是否打开。
var isWifiActive = wifi_native_js.isWifiActive(); // 若WLAN打开,则返回true,否则返回false
(二)发起扫描并获取结果
-
调用scan()接口发起扫描。
-
调用getScanInfoList()接口获取扫描结果。
// 调用WLAN扫描接口 var isScanSuccess = wifi_native_js.scan(); // true // 延迟一定时间 // 获取扫描结果 wifi_native_js.getScanInfos(result => { var num = Object.keys(result).length; console.info("wifi scan result mum: " + num); for (var i = 0; i < num; ++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
-
调用addDeviceConfig添加配置,然后通过返回的配置id连接WLAN或调用connectToDevice通过配置直接连接WLAN。
// WLAN配置信息 var config = { "ssid":"test_wifi", "bssid":"", "preSharedKey":"12345678", "isHiddenSsid":false, "securityType":3, } 方式一: // 添加配置 wifi_native_js.addDeviceConfig(config, (result) => { console.info("config id: " + result); // 通过配置id连接WLAN wifi_native_js.connectToNetwork(result); }); 方式二: // 通过配置信息直接连接WLAN wifi_native_js.connectToDevice(config);
相关仓
分布式软总线子系统
communication_wifi
communication_wifi-master.zip 614.59K 38次下载
已于2021-9-8 18:00:32修改
赞
收藏
回复
相关推荐