Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android: How to Get 3G/UMTS Signal Strength Values

Tags:

java

android

I am a Cellular RF Engineer and have been trying to get some specific WCDMA/3G/UMTSsignal measurement values out of Android SDK environment. Using the public class SignalStrength I have been successful in getting meaningful GSM values (with the assistance of a Software Engineer) using getGsmSignalStrength(), but only yield "-1" values for getCdmaDbm() and getCdmaEcio() respectively which are supposed to return relevant CDMA signal strength values. -1 is definitely not right!

My phone was definitely on a UMTS at the time and I can read UMTS parameters in the field test software (to get the field test software going was a hassle in itself).

I think it is quite likely that getCdmaDbm() and getCdmaEcio() methods are for CDMA networks, not WCDMA (CDMA and WCDMA are different technologies) which leaves me high and dry in terms of trying to get 3G measurements out of the phone. Alternatively, there is some other methods out there but I simply can't find them in the reference material on the web:

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

Can someone please assist me? There must be a way (after all, field test s/w can get this information) but how? Someone wrote an app called Cellumap which gets UMTS, GSM and CDMA measurement information.

like image 383
Aussie 123 Avatar asked Sep 27 '10 00:09

Aussie 123


1 Answers

Have you tried getRSSI() method from NeighboringCellInfo class. It's description:

Returns received signal strength or UNKNOWN_RSSI if unknown For GSM, it is in "asu" ranging from 0 to 31 (dBm = -113 + 2*asu) 0 means "-113 dBm or less" and 31 means "-51 dBm or greater" For UMTS, it is the Level index of CPICH RSCP defined in TS 25.125

like image 159
Lycha Avatar answered Oct 14 '22 08:10

Lycha