根据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的级别索引
一些研究表明,这可能是一个错字,实际上应该参考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
,依此类推,因此以dBm为单位的信号电平是通过从报告的电平中减去116来获得的。
报告范围为-120到-25 dBm,对应于-5到+91的水平。
但是,实际上我注意到返回的值超出了该范围。我看到getRssi()
返回-100左右的值。我怀疑该功能没有返回文档中指定的级别,但 dBm 。
有没有其他人遇到这个并且可以确认Android确实返回dBm而不是信号级别?或者这是测试中使用的设备的问题(运行Cyanogenmod 11 m11的OnePlus One - 社区版本,而不是手机出货的Cyanogenmod 11S库存)?