Wi-Fi扫描是指设备(如手机、电脑、路由器等)搜索周围可用Wi-Fi网络的过程。通过扫描,设备可以获取附近网络的基本信息(如网络名称、信号强度、加密方式等),从而实现连接、管理或分析周围网络。
完整的JS API说明以及示例代码请参考:@ohos.wifiManager (WLAN)。
接口具体说明如下表所示。
| 接口名 | 功能描述 |
|---|---|
| getScanInfoList() | 获取扫描结果。 |
| on(type: 'wifiScanStateChange') | 注册扫描状态改变事件。 |
| off(type: 'wifiScanStateChange') | 取消注册扫描状态改变事件。 |
导入需要的Wi-Fi模块。
需要SystemCapability.Communication.WiFi.STA系统能力。
需要权限ohos.permission.GET_WIFI_INFO。
开启设备的Wi-Fi。
示例代码:
主动扫描接口,从API version 10开始废弃。替代接口仅向系统应用开放。
import { wifiManager } from '@kit.ConnectivityKit';
let recvWifiScanStateChangeFunc = (result:number) => {
console.info("Receive Wifi scan state change event: " + result);
}
try {
// 获取扫描状态 0:扫描失败;1:扫描成功。
wifiManager.on("wifiScanStateChange", recvWifiScanStateChangeFunc);
let isWifiActive = wifiManager.isWifiActive();
if (!isWifiActive) {
console.error("wifi not enable"); // 请先手动打开WiFi
return;
}
let scanInfoList = wifiManager.getScanInfoList();
let len = scanInfoList.length;
console.info("wifi received scan info: " + len);
if(len > 0){
for (let i = 0; i < len; ++i) {
console.info("ssid: " + scanInfoList[i].ssid);
console.info("bssid: " + scanInfoList[i].bssid);
console.info("capabilities: " + scanInfoList[i].capabilities);
console.info("securityType: " + scanInfoList[i].securityType);
console.info("rssi: " + scanInfoList[i].rssi);
console.info("band: " + scanInfoList[i].band);
console.info("frequency: " + scanInfoList[i].frequency);
console.info("channelWidth: " + scanInfoList[i].channelWidth);
console.info("timestamp: " + scanInfoList[i].timestamp);
console.info("supportedWifiCategory: " + scanInfoList[i].supportedWifiCategory);
console.info("isHiLinkNetwork: " + scanInfoList[i].isHiLinkNetwork);
}
}
} catch (error) {
console.error(`WiFi scan fail. ${error.message}`);
} finally {
// 取消注册,停止获取扫描状态。放在finally块中,确保异常时也能解绑,避免资源泄漏。
try {
wifiManager.off("wifiScanStateChange", recvWifiScanStateChangeFunc);
} catch (e) {
console.error(`WiFi scan off failed. ${e.message}`);
}
} 错误码详情请参见Wi-Fi错误码。
PNO扫描即首选分流网络扫描(Preferred Network Offload scanning),是一种用于降低移动设备功耗的Wi-Fi扫描技术。
触发PNO扫描条件:当设备未连接Wi-Fi且屏幕关闭后,会触发PNO扫描,支持设备在后台寻找并连接首选的Wi-Fi网络。