uni-app WifiInfo中signalStrength是负数,和文档不符

uni-app WifiInfo中signalStrength是负数,和文档不符

开发环境 版本号 项目创建方式
Mac Sequoia 15.4.1 HBuilderX
产品分类:uniapp/App

PC开发环境操作系统:Mac

PC开发环境操作系统版本号:Sequoia 15.4.1

HBuilderX类型:正式

HBuilderX版本号:4.76

手机系统:Android

手机系统版本号:Android 13

手机厂商:小米

手机机型:小米10

页面类型:vue

vue版本:vue3

打包方式:云端

项目创建方式:HBuilderX

### 操作步骤:

通过uni.onGetWifiList获取WiFi列表即可

### 预期结果:

wifiInfo中的signalStrength应该如文档描述是0-100

### 实际结果:

实际显示负数  

```json
{
    "frequency": 5785,
    "SSID": "Wei-Global",
    "signalStrength": -87,
    "securityType": "NONE",
    "secure": false,
    "BSSID": "08:fa:28:2d:f8:d4"
}

更多关于uni-app WifiInfo中signalStrength是负数,和文档不符的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app WifiInfo中signalStrength是负数,和文档不符的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在无线通信领域,WiFi信号强度(RSSI)通常以负dBm值表示,这是行业标准做法。uni-app文档中提到的0-100范围可能是对信号质量的百分比转换,但底层系统API返回的原始值确实是负数。

您遇到的情况是正常的:Android系统直接返回了RSSI的原始dBm值,-87 dBm属于中等偏弱的信号强度(一般-30 dBm为极强信号,-90 dBm为临界可用信号)。

建议的处理方式:

  1. 如需转换为0-100范围,可自行实现映射算法,例如:
function convertToPercentage(dbm) {
    const max = -30   // 最佳信号
    const min = -90   // 最弱信号
    return Math.max(0, Math.min(100, Math.round((dbm - min) / (max - min) * 100)))
}
回到顶部