Op Android/AOSP is het hiertussen ergens te vinden:
https://android.googlesource.com/platfo ... ength.java
Dit geldt enkel voor AOSP, dus de HTC sense of Samsung touchwizz willen hier nog wel wat mee "vals spelen"
Bij LTE wordt de RSRP in # dBm omgezet in een ASU (1-99) waarop dan een aantal "bars" wordt geplakt. (1 is -140dBm, 2 is -139dBm, ... tot -97 is -43dBm of meer)
Pas op RSRP is niet helemaal gelijk aan RSSI
else if (mLteRsrp >= -85) rsrpIconLevel = SIGNAL_STRENGTH_GREAT;
else if (mLteRsrp >= -95) rsrpIconLevel = SIGNAL_STRENGTH_GOOD;
else if (mLteRsrp >= -105) rsrpIconLevel = SIGNAL_STRENGTH_MODERATE;
else if (mLteRsrp >= -115) rsrpIconLevel = SIGNAL_STRENGTH_POOR;
else if (mLteRsrp >= -140) rsrpIconLevel = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
Dus alles groter dan -85dBm is 4 bars
groter dan -95 is 3 bars
groter dam -105 is 2 bars
groter dan -115 is 1 bar
groter dan -140 is 0 bars (lege bereik in de statusbar)
Alles beter dan -125 is nog goed te doen op LTE, ~doenbare snelheden.
Voor gsm werkt het hetzelfde maar den met ASU levels in de code (pas op deze zijn anders dan die van LTE)
Ik heb geen tijd om het allemaal uit te zoeken, maar in die link vind je alles. (zelfs CDMA en EvDO en WCDMA (de bekende 3G/UMTS/HSDPA/HSPA+ hier))
Iphones en andere toestellen zijn anders natuurlijk. Dit is enkel AOSP android.
Toch raad ik je aan om gewoon de RSSI direct uit te lezen in je toestel om daarop je beslissing te baseren. Bars zijn overal gewoon anders.