HarmonyOS鸿蒙Next中我要做WiFi扫描功能,请问这个接口能不能使用?
HarmonyOS鸿蒙Next中我要做WiFi扫描功能,请问这个接口能不能使用?
wifiManager.getScanInfoList()
一直爆红,说是没有这个方法。
另外,请问定义数组的时候到底要怎么定义?
@State scanList: Array<WifiScanInfo> = []
我需要把WifiScanInfo手动定义成一个接口吗?

更多关于HarmonyOS鸿蒙Next中我要做WiFi扫描功能,请问这个接口能不能使用?的实战教程也可以访问 https://www.itying.com/category-93-b0.html
确定导入是否正确,该模块主要提供WLAN基础功能(无线接入、无线加密、无线漫游等)、P2P(peer-to-peer)服务的基础功能和WLAN消息通知的相应服务。
import wifiManager from '@ohos.wifiManager'
定义数组没问题。
更多关于HarmonyOS鸿蒙Next中我要做WiFi扫描功能,请问这个接口能不能使用?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
还需要导入别的吗?我翻文档只需要导入这一个模块就行了。然后在module.json5文件里面声明了
"requestPermissions": [
{
"name": "ohos.permission.GET_WIFI_INFO",
"reason": "$string:app_name"
}
]
如果定义数组没问题,那这个数组报错是因为模块导入不正确导致的吗?
对,之前导入模块不正确。 该接口说明返回扫描到的热点列表。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的bssid为真实设备地址,否则为随机设备地址。
我之前导入WiFi模块写的是// import { wifiManager } from ‘@kit.ConnectivityKit’; 换成了import wifiManager from ‘@ohos.wifiManager’ 就是下面的报错。麻烦再帮我看一下,感谢感谢
hvigor ERROR: Failed :entry:default@CompileArkTS… hvigor WARN: 1 WARN: ArkTS:WARN File: D:/HuaWei/AutoLTbx/entry/src/main/ets/pages/devices.ets:28:21 Function may throw exceptions. Special handling is required.
hvigor ERROR: ArkTS Compiler Error 1 ERROR: 10505001 ArkTS Compiler Error Error Message: Cannot find name ‘WifiScanInfo’. At File: D:/HuaWei/AutoLTbx/entry/src/main/ets/pages/devices.ets:26:26
COMPILE RESULT:FAIL {ERROR:2 WARN:1}
- Try:
Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output.
hvigor ERROR: BUILD FAILED in 700 ms
Process finished with exit code -1,
1、确保模块正常导入
import wifiManager from '@ohos.wifiManager'
2、确保属性正常引用:
可以参考下面例子进行各项信息获取
try {
let scanInfoList = wifiManager.getScanInfoList();
console.info("scanInfoList:" + JSON.stringify(scanInfoList));
let len = scanInfoList.length;
console.log("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("failed:" + JSON.stringify(error));
}
API说明:wifiManager.getScanInfoList
获取包含当前时间点前30s内的缓存扫描结果。
| 类型 | 说明 |
|---|---|
| Array<WifiScanInfo> | 返回扫描到的热点列表。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的bssid为真实设备地址,否则为随机设备地址。 |
3、确保权限已经申请:
- ohos.permission.GET_WIFI_INFO【权限声明配置】
谢谢!我已经解决了!
在HarmonyOS Next中,WiFi扫描功能可以使用@ohos.wifiManager模块中的scan()接口实现。该接口属于系统API,需要申请ohos.permission.SET_WIFI_INFO和ohos.permission.GET_WIFI_INFO权限。调用后会触发扫描,结果通过on('scanResultsReady')事件回调返回。
在HarmonyOS Next中,wifiManager.getScanInfoList() 接口已废弃,无法直接使用。WiFi扫描功能需要使用新的API。
1. 新的WiFi扫描接口:
请使用 @ohos.wifiManager 模块中的 scan 和 getScanResults 方法。
- 发起扫描: 调用
wifi.scan()方法。 - 获取结果: 调用
wifi.getScanResults()方法。其返回值类型即为Array<WifiScanInfo>。
示例代码:
import { wifi } from '@ohos.wifiManager';
// 发起WiFi扫描
wifi.scan();
// 获取扫描结果
let scanResults: Array<wifi.WifiScanInfo> = wifi.getScanResults();
2. 数组定义问题:
您的定义 @State scanList: Array<WifiScanInfo> = [] 在语法上是正确的。关键在于 WifiScanInfo 类型的来源。
- 不需要手动定义接口。
WifiScanInfo是@ohos.wifiManager模块中已定义好的类型。 - 正确做法是 从模块中导入该类型,或直接使用
wifi.WifiScanInfo作为完整类型路径。
修正后的数组定义示例:
// 方式一:导入类型
import { wifi, WifiScanInfo } from '@ohos.wifiManager';
@State scanList: Array<WifiScanInfo> = [];
// 方式二:使用完整命名空间
import { wifi } from '@ohos.wifiManager';
@State scanList: Array<wifi.WifiScanInfo> = [];
总结:
- 停止使用
getScanInfoList(),改用scan()+getScanResults()。 WifiScanInfo是系统预定义类型,无需手动定义,直接从@ohos.wifiManager模块引用即可。

