Annoyed at the lack of network signal information for your Android phone?
Wish you could know more about the statistics your carrier uses to determine many bars your phone has and the tower it connects to?
Want to see what your 3g and 4g signals are at the same time?
Try out this app and see all that information you've been missing!
App works best for phones with either a CMDA or LTE data connection, but may work for GSM only phones as well.
Note: not all information may be available depending on the OEM/OS. Info not displayed will show as "N/A"
Fixed a bug for anyone on Android 2.2. Google for some reason in their wise choice decided to leave out Arrays.copyof() in Android 2.2, despite it being a core part of the Java JDK. I decided to use it for something, assuming it was there (because why wouldn't it be, heh). Anyways, if you're on Android 2.2, it should show up in the Android Market later today :)
Adjusted the signal % readings based on feedback. Relative ones should be a bit closer to what one thinks is a decent signal for their phone.
UPDATE (2012-06-02): Lots of improvements (see screenshot here):
- New ways to monitor your signal quality via easy to read percentages %
- Monitor your signal based on 0-100% percentages
- ActionBar + options area for all
- Performance/stability improvements.
Compare your signal quality based on % instead of just decibels. Now, you can instantly see how great each signal reading is for your device based on a scale of 0% (worst) to 100% (best). Percentages are configured to give the best reading for your carrier by default.
UPDATE (2013-01-13): Performance tweaks through code cleanup and restructuring. If nothing else is needed, next version will have some new information for GSM users and maybe some other things if I have time.
A few users were getting a permission denied error/crash when accessing additional settings (Huawei M865C & Samsung Galaxy Ace). Access problem is with your phone's current OS and the manufacturer so I cannot fix it. However, the crash will no longer happen and you get a friendly message.
UPDATE (2012-12-20):I have no idea what devices a few people have as it just shows as OTHER (probably non-approved devices running Android), but this fix is to keep them from crashing. However, I don't know how much info those devices will see if they aren't totally compliant.
UPDATE (2012-12-11): Array out of bounds error fixes for devices like the Galaxy Y and ZTE Warp. If you never had crashes, then no reason to update as there's nothing else new.
UPDATE (2012-12-07): Fixed for anyone most likely getting a force close due not having full network support. If the app is not working on your phone (mostly seems to be a few GSM ones), please contact me and we can figure out the issue.
Added the app version number at the bottom of the app.
Added a button to reach your additional phone radio/network settings. Please only use this button and change the settings under it if you're sure of what you're doing :)
UPDATE (2012-11-24): Not exactly a true update, but translated the project to Mono for Android with C#. Source is here.
UPDATE (2012-11-13): Fixed a crash bug for users on Android 2.3 and before.
UPDATE (2012-11-12): Now added to the Android Market. The app on the market has a small banner ad to support my continued development, but the version below (scroll down) does not have them. Otherwise, they are the same.
New in Update (2012-11-12):
Bug fixes - few fields showed values when they shouldn't for phones that don't supply all the stats (like the Galaxy S3).
Performance enhancements - Much of the code was rewritten to be smaller and more efficient
Android compatiblity - Should now work on any Android phone with Android 2.2 or later, regardless of carrier or network type (GSM, LTE, CDMA).
UPDATE (2012-05-29): Created an app to test your signal. If you give out the link to the app, please link directly to the topic and not the apk/app itself so that people can read the topic before getting it. App signal readings update every time the phone notifies of a signal change. So in other words, it updates as often as the signal does under settings → status. RSRP is the same signal you see under there if you wanted to match it up. Also added more to the definitions for the terms shown in the app in my post above so you can see how they equate to your signal quality. App should work on Android 2.2 and above and on any sort of carrier (including GSM), but it may not show everything for non-ics devices.
NEXT UPDATE: add logging to the app and give stats on the signal logs taken (mean, median, standard deviation, variance, etc). Maybe a built in "speedtest" for your connection as well.
If anyone has any suggestions for things to add to it, feel free to let me know.
Market ad supported version
If you like what I do and wish to support further development of this app in my spare time, feel free to get this one instead. It's the same as the version below, just with a small banner ad. I make next to nothing off ads, so it's just peanuts.
Ad free version
This version is the same as the market version, but no ads. You won't be able to update from the market most likely due to market licensing.
It's available here (40KB download so it's very small).
Basic App Source (to prove data is legit): https://github.com/yareally/SignalInfo
--Android Signal Info Statistics Information--
All other LTE phones (excluding the Nexus) are reporting the RSSI of the cdma 1x signal in android 2.3, NOT the LTE signal. Android 2.3 was not capable of properly reporting the LTE signal and support was added for it in ICS. Phones on Android 4.0 and above also use RSRP to determine your signal. RSRP has a huge difference to RSSI (for example):
RSSI = -79 dBm, RSRP = -93 dBm
This is why a Motrola Razr or HTC Rezound will show -79 dBm in the same spot a GNex will display -93 dBm if you are comparing it with Android 2.3 to a phone using Android 4.0+.
Also, the higher your ASU under settings the better. ASU or "Arbitrary Strength Unit" is an integer value proportional to the Reference Signal Received Power (RSRP) measured by the mobile phone. The higher the number for ASU, the less interference you have between you and the towers. It varies by your current type of connection, but ASU a number in the range of 0 to 99 (99 means you have no signal [unknown] and closer to 0 means it's also bad).
Your ASU on LTE is your current signal + 140. So if you have a signal of -93, then your LTE based ASU is (-93 + 140 = 47). See picture below for example:
Technically, your ASU will never be 98, as it hits a ceiling of 97 and if you were somehow able to get a signal of -43db (-43 + 140 = 97). If your signal is somehow worse than -140, then it will report zero, but that should also not be possible.
It's a little more complicated for CDMA ASU. On CDMA, it's some power of 2 up to 16 (1, 2, 4, 8, 16) with 16 being the best or 99 if it's unknown. It's also measured by not only your signal in db, but also by your your signal to noise ratio which is not shown to you.
↑↑↑ Source for that was SignalStrength.java under getLteAsuLevel() ↑↑↑
If you're wondering how the signal bars for phones using Android 4.0 or above are computed, they mostly follow the following specification. The bars are mostly just a relative measurement based on what we think is good or bad as we already knew. However, Google did adjust them to make them to look like you have a "better" signal in 4.0.4 though for LTE if you had a device with Android 4.0.2 or 4.0.1.
The below link is a reference to the above mentioned change:
The link shows how they were before/after 4.0.4. Mostly increased everyone's LTE bars in most cases by 1 bar, but the change was only visually and not a performance increase.
Google also uses the signal to noise ratio (SNR) to determine whether your normal signal statistic listed under settings gets priority or the SNR for showing the bars now. They take the one that looks better and use that for mapping to the bars as shown here: https://github.com/a...5a9b6889851d887
Signal To Noise ratio is just a computed number based on how much interference is in your connection. It's not exactly the best measure for data as it's just measuring interference.
Before you start comparing your signal to other phones not on ICS, at least read this and look at this link to the Android source for ICS:
The LTE signal strength level is the smaller one
between lte rsrp level and lte snr level if both
rsrp and snr are valid.
In short, Android now uses the RSRP data to measure how many bars you see and also is what is shown under settings when you're on LTE 4G.
Reference signal received power (RSRP), is defined as the linear average over the power contributions in Watts of the resource elements that carry cell-specific reference signals within the considered measurement frequency bandwidth. Used to measure the signal of your LTE (GSM/4g) connection. In short, it's what's used to determine the best cell tower your LTE device can connect to at the given time. Anything below say -80db is considered pretty good and you're pretty close to a tower. -80db to -90db is average what you should expect most of the time. -90db or above and you're probably in an "extended network" area for LTE and getting close to a likely handoff. -105db and above you would be likely to see a handoff to 3G if your signal does not get better.
Throughput for your connection measured with LTE is estimated to decline between 30-50% if your signal goes from -75db to -90db for RSRP. Above -95db and your throughput dramatically drops. At around -108db and worse, your throughput for download drops to nearly 3G rates or worse. Note that this doesn't exactly represent how strong your signal is, just the potential of how efficiently it will send that data.
Because it's only measuring the efficiency between you and the tower, not the rest of the network or the end source (the website). There are many network hops along the way to the destination and some may also handle connections inefficiently. The more hops, the slower the connection generally is.
However, it does also represent the greater likelihood that your connection will drop more packets of data that need to be retransmitted and thus not only slowing your connection but also causing it to have to work harder and draining more battery when it's actively downloading/uploading. That's why having it hand off is for the best than fighting it to stay on LTE. This is most likely why people always complained about the Thunderbolt having such poor battery life as no one ever saw what their RSRP was on it, only their RSSI like all other Gingerbread devices.
You can also consider RSRP the "absolute strength" of your current connection.
Received Signal Strength Indicator (RSSI), is the linear average of the total received power in Watts. This is used to measure the db signal for CDMA (3g/2g [2g being your 1x and voice]) signals and used in determining the "signal to noise ratio". It was what was shown on all devices as the "signal" under the Android settings before Android 4.0. Basically this is how much noise/interference is in your connection. Not so good for measuring the overall power of it. It should be in the range of like -58db and greater (like -32db). In other words, the closer it is to being positive, the better. If it's in the high 80s or 90s, your signal is probably starting to cause some slight battery drain when idle. RSSI has less to do with how great your network speeds are and more to do with how good your potential battery life will be.
SNR (Signal to Noise Ratio):
The higher your SNR, the more throughput (better download/upload speed) your connection will have. The lower the number, the worse it will be. The Nexus tends to have a lower SNR on average than phones with Qualcomm chipsets, such as the Galaxy S3. What does that mean? It means you are more prone to have interference on your connection to the towers when your signal is obstructed by scenery or the building you are currently located in. That means slower speeds and higher potential for unstable connections.
CQI (Channel Quality Indicator):
CQI is measured 0 to 15, with higher being better. It's a measure of how good the quality is for the current channel the cell tower has you on. CQI is derived from the SNR (signal to noise ratio) and the SINR (Signal Interferance Noise Ratio).
RSRQ (the overall quality of your signal in general) and SINR "Signal Interference Noise Ratio on LTE":
This is the great your connection is overall (the stability of it and how close it is to handing off to 3G). RSRQ ranges from -3db to -19.5db with a number closer to -3db being better. SINR is similar to RSRQ, but the measure may differ. I still need to verify which variable relates to SINR in the source (the RSRQ weirdly shows as positive in the Nexus SDK, which shouldn't be possible, but SINR can be positive so I'm not sure if they have it linked wrongly or what just yet). It takes in account of both your overall signal strength (RSRP) and the noise/interference in the connection (RSSI). Your phone is using this to determine when to hand off to 3G or go back to LTE. Reference Signal Received Quality (RSRQ) is defined for Verizon as 17db + (RSRP signal + | RSSI signal |) | | being absolute value. The graph below shows how RSRQ helps to determine when you it should hand off versus just RSRP alone:
From Verizon themselves :
Randomly Asked Questions
It's not really "better." It's (the Charge) just measuring something different (the RSSI of the 3G connection) to obtain the signal which isn't even related to LTE. If you changed the above, the signal would probably be nearly the same. From my testing, my RSSI is nearly the same as what I got at my current location on my Thunderbolt (which everyone claims has amazingly better radios and Qualcomm chipset). This is true for all phones running Android 2.3 or before with LTE 4G connections.
Because it goes back to what I already mentioned in that other OEMs don't measure the LTE signal with the same metrics as they do on the Nexus (it was only added to the Android source with ICS and before then each carrier just "rolled their own" thing probably using the RSSI of the LTE signal to handle when to hand off) so the phone thinks the LTE signal is also better than it actually is and so it's staying on what is really a *worse* LTE signal when it should be handing off to a better CDMA/3g signal. Also see the part about RSRQ above and the graph. It'll be far easier to tell what they're doing when they update to ICS though as we'll have access to more information.
RSSI is an okay metric to handle 3g/cdma, but it's not nearly as good for LTE as RSRP is or RSRQ. OEMs are still using it other than for the Nexus and it's those other phones hold LTE longer than they should in many cases as that was the metric they had to go on with Gingerbread and before RSRP became the standard measure of LTE signal for Android.
From a few tests of pulling the signal info out of my phone directly using the ICS source (I was in a crap signal area when I took them):
cdma db = -100
cdma ecio = -150
evdo db = -105
evdo ecio = -150
evdo snr = 1
lte sig strength = 10
lte rsrp = -109
lte rsrq = -8
lte snr = 10
lte cqi (channel quality indicator) = 7 (measured 0 to 15, higher being better)
cdma db = -100
cdma ecio = -150
evdo db = -105
evdo ecio = -150
evdo snr = 1
lte sig strength = 10
lte rsrp = -108
lte rsrq = -8
lte snr = -30
lte cqi = 7
You can caculate my RSSI from knowing the RSRP and the RSRQ:
rsrq = 17 + (rsrp + x)
-8 = 17 + (-108 + x)
x = -83db → my LTE RSSI
Additional Info/Further Reading:
http://www.scribd.co...353976/12/RSRQ? (probably the best reference on what RSRQ is and RSRP)