2010-09-27 67 views
17

我是移动射频工程师,一直试图从Android SDK环境中获取一些特定的WCDMA/3G/UMTS信号测量值。使用公共类SignalStrength我已经成功获得有意义的GSM值(在软件工程师的协助下),使用getGsmSignalStrength(),但分别为getCdmaDbm()getCdmaEcio()分别产生“-1”值,其应该返回相关的CDMA信号强度值。 -1绝对不对!Android:如何获得3G/UMTS信号强度值

我的手机当时确实在UMTS上,我可以在现场测试软件中读取UMTS参数(以便让现场测试软件本身很麻烦)。

我认为很有可能getCdmaDbm()getCdmaEcio()方法是用于CDMA网络,而不是WCDMA(CDMA和WCDMA是不同的技术),这使我在尝试从手机中获得3G测量值时留下高和干。另外,还有一些其他的方法,在那里,但我根本无法找到他们在参考资料网站:

http://developer.android.com/reference/android/telephony/SignalStrength.html

是否有人可以帮助我?必须有一种方法(毕竟,现场测试s/w可以得到这些信息),但是如何?有人写了一个名为Cellumap的应用程序,它可以获得UMTS,GSM和CDMA测量信息。

+0

检查这个[answer](http://stackoverflow.com/questions/1967136/how-to-get-cell-service-signal-strength-in-android/1967160#1967160)关于实现这个对象作为PhoneStateListener 。任何时候信号强度都会改变(以及活动开始时),您将获得信号强度。 – 2011-06-22 03:22:52

回答

1

您是否尝试过使用NeighboringCellInfo类的getRSSI()方法。它的描述:

返回接收的信号强度或UNKNOWN_RSSI如果未知对于GSM, 它是在 “ASU” 范围从0到31(DBM = -113 + 2 * ASU)0意味着 “-113 dBm或少”和31层的意思是 “-51 dBm或更大的” 对于UMTS,它是 在TS 25.125中定义