Android:如何获取3G/UMTS信号强度值

17
我是一名蜂窝网络RF工程师,一直试图从Android SDK环境中获取一些特定的WCDMA/3G/UMTS信号测量值。使用公共类SignalStrength,我成功地使用getGsmSignalStrength()(在软件工程师的帮助下)获得了有意义的GSM值,但对于应该返回相关CDMA信号强度值的getCdmaDbm()getCdmaEcio()分别只产生“-1”值。-1绝对是不正确的!
当时我的手机明确处于UMTS状态,并且我可以在现场测试软件中读取UMTS参数(让测试软件运行起来本身就是一个麻烦)。
我认为getCdmaDbm()getCdmaEcio()方法很可能是针对CDMA网络而非WCDMA(CDMA和WCDMA是不同的技术),这使我在尝试从手机中获取3G测量值方面感到困难。或者,还有其他的方法,但我根本在网上的参考资料中找不到它们: http://developer.android.com/reference/android/telephony/SignalStrength.html 请问有人能帮助我吗?肯定有方法(毕竟,现场测试软件可以获取这些信息),但如何实现呢?有人编写了一个名为Cellumap的应用程序,可以获取UMTS、GSM和CDMA测量信息。

点击这个答案,了解如何将该对象实现为PhoneStateListener。每当信号强度发生变化(以及活动启动时),您都会获得信号强度。 - James Oltmans
2个回答

1

你试过从NeighboringCellInfo类中调用getRSSI()方法了吗?它的描述如下:

返回接收到的信号强度,如果未知则返回UNKNOWN_RSSI。对于GSM而言,asu的范围为0至31(dBm = -113 + 2 * asu)其中0表示“-113 dBm或更低”,31表示“-51 dBm或更大”。对于UMTS而言,它是在TS 25.125中定义的CPICH RSCP级别指数。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接