First off, we would like to take the time to thank everyone who has gone ahead, downloaded, installed, and submitted your results using Signal Strength Detector. This will allow us to greatly improve how we handle signal strength calculations across a broad spectrum of devices. If you have not already, please do so, especially if you have a WiMAX, LTE, HSPA+, or other 4G device. For those without access to the Android Market the apk file is available for download here. Source code is also freely available under the Apache 2.0 license on GitHub.
For the programmers and more technologically inclined individuals here are the current Signal Strength Detector Results in the form of a zip file, which contains numerous text files one for each submission. It will be updated from time to time, and if it ever gets too out-of-date just remind us to update it.
Simply put, the results are horrifying! OEM has managed to change just about everything, whether it is the addition of new system services for WIMAX (and in the case of HTC, multiple services), or changing the values of constants that are actually part of the API! On Google Code issue 16862 points out that on the Samsung Galaxy S2 line the method
SignalStrength.getGsmSignalStrength() always returns an invalid integer, and that the only solution is to use a proprietary, less-accurate, getGsmSignalBar() method. Or on the Samsung Galaxy Indulge R910 the constant
NETWORK_TYPE_LTE has a value of 12 when the official API clearly states that its value should be 13.
All in all this spells headache for any developer, and for us with an application like StatusBar+ more frustration. It is bad enough that Android does not have an official API for LTE, W-CDMA, or WiMAX but as if that was not painful enough OEMs have taken it upon themselves to change what APIs we do have!