
回复
无线局域网(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