场景描述
场景一:查看附近可连接wifi网络的信号强度(rssi)、热点能力、服务集标识(ssid)等信息,开发者可自定义策略选择网络
场景二:通过当前连接wifi的IP地址判断用户所属有关位置信息
方案描述
场景一:
查看附近可连接wifi网络的信号强度(rssi)、热点能力、服务集标识(ssid)等信息,开发者可自定义策略选择网络
效果图
日志中打印结果显示可参考如图
方案
当前暂不支持三方直接调用扫描能力,提供wifimanager.getScanInfoList方法获取到扫描结果
核心代码
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);
}
}
}catch(error){
console.error("failed:" + JSON.stringify(error));
}
场景二:
通过当前连接wifi的IP地址判断用户所属有关位置信息
方案
建立socket通信连接绑定本设备ip地址 / 获取本地WiFi的IP地址及特征,可参考@ohos.wifimanager.getLinkedInfo方法获取当前已连接wifi的地址信息
效果图
核心代码
返回数据为格式需要调用位移符转换为”192.168.0.1“常见IP地址模式:
//返回参数格式转换
resolveIP(ip: number): string {
if (ip < 0 || ip > 0xFFFFFFFF) {
return "";
}
return (ip >>> 24) + '.' + (ip >> 16 & 0xFF) + '.' + (ip >> 8 & 0xFF) + '.' + (ip & 0xFF);
}
//获取当前连接wifi的IP地址
wifiManager.getLinkedInfo().then(data => {
console.info("get wifi linked info: " + JSON.stringify(this.resolveIP(data.ipAddress)));
}).catch((error:number) => {
console.info("get linked info error");
});
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。