根据Android开发者文档,NeighboringCellInfo.getRssi()
指定如下:
接收到的信号强度或 UNKNOWN_RSSI 如果未知 对于 GSM,它在“asu”范围内,从 0 到 31 (dBm = -113 + 2*asu) 0 表示“-113 dBm 或更低”,31 表示“-51 dBm 或更高”对于 UMTS,它是 TS 25.125 中定义的 CPICH RSCP 的 Level 索引
一些研究表明这可能是一个错字,实际上应该参考 TS 25.133 第 9.1.1.3 节 ( http://www.3gpp.org/DynaReport/25133.htm )。该文件的 10.2.0 版本基本上说明了CPICH_RSCP_LEV_-04
对应于-120 dBm <= CPICH RSCP < -119 dBm
等,因此通过从报告的电平中减去 116 获得以 dBm 为单位的信号电平。
报告范围从 -120 到 -25 dBm,对应于级别 -5 到 +91。
但是,在实践中,我注意到返回的值超出了该范围。我看到getRssi()
返回值在 -100 左右。我怀疑该函数不是返回文档中指定的级别,而是返回dBm。
有没有其他人遇到过这个并且可以确认Android确实返回dBm而不是信号电平?或者这是测试中使用的设备的问题(运行 Cyanogenmod 11 m11 的 OnePlus One - 社区版本,而不是手机随附的库存 Cyanogenmod 11S)?