[Android Apps and Games] yareally:
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"

Any feedback, suggestions for improvement, etc are welcome :)

UPDATE (2015-05-01):

-1.5.1 changes -

► Regression fix network shortcut

UPDATE (2015-05-01):

-1.5 changes -

► I can't fix devices not working for the network settings shortcut because Samsung locks down their phones. Rooted Samsung devices generally work. Pick what is more important, network switching or owning a Samsung device

► bugfixes (crashed instead of telling user device was locked down)

► Translations for French & Spanish. Thank you contributors :)

► Updated Google libs (Lollipop issues)

► App is now written in Scala, yay

UPDATE (2014-01-06):

► Devices with root/super user can now access the "additional settings area" if they were being blocked by Samsung and their carrier (Note 3 / Galaxy S4 / etc). Contact me if you experience issues and have root

► GSM ECIO added for supported devices

► Bug fixes (Huawei and a few older LG)

► Overhaul of the parser that grabs the readings from the system. More flexible with older devices

► Performance enhancements. Using async for tasks

UPDATE (2013-09-03):

Added RSSI signal for GSM/HSPA devices

LTE SNR and CDMA/EVDO ECIO are now listed in decibels instead of the Android default of centibels.

Few bug fixes for devices crashing on startup. If it still crashes for you, you need to contact me for fixes.

UPDATE (2013-06-04):

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 :)

UPDATE (2013-06-03):

Bug fix that would cause the app to close when rotating the screen.

Relative percentages were adjusted a bit based on feedback.

UPDATE (2013-06-02):

Lots of improvements (see screenshot below):

- 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.

Also a fix for devices that don't support the additional info/settings area that Google adds for devices and some manufacturers remove (like those with the Galaxy Note 1). You still won't see it as it's beyond my control, but it won't crash.

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-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.

--Download Links--

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.

Non Play Store Version

This version is the same as the market version, but for those that don't/won't use the play store. You won't be able to update from the market most likely due to market licensing unless you overwrite it with the market version (may also have to uninstall).

It's available here

Basic App Source (to prove data shown is correct): https://github.com/yareally/SignalInfo. App is written in Scala. There's also an older Java version (for Android 2.2+ devices) I no longer support in the same repository. Questions about the Java version will be ignored as I don't support it.

Screen Shot:

--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 the above 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:

https://github.com/a...28b7fc2f6ef8bce

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:

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.

Definitions:

RSRP:

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.

RSSI:

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)

http://docs.google.c...28qjNF66uPBYmfA

https://docs.google....fUvgTfFjRQ-4Mhw