解决方案:
public int mapUmtsSignalLevel(int phoneId, int UmtsRscp) {
// [ALPS03252546] -- START , for 3G network
int phoneRaf;
boolean isTdd3G = false;
int level = SignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
log("mapUmtsSignalLevel, phoneId=" + phoneId);
// TDD/FDD mode
/* Kalyy 20180416 {*/
if ((UmtsRscp > -25) || (UmtsRscp == SignalStrength.INVALID))
level = SignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
else if (UmtsRscp >= -92/*-93 -72*/) //sunvov hj 20180612
level = SignalStrength.SIGNAL_STRENGTH_GREAT;
else if (UmtsRscp >= -98/*-103 -88*/)
level = SignalStrength.SIGNAL_STRENGTH_GOOD;
else if (UmtsRscp >= -104/*-113 -104*/)
level = SignalStrength.SIGNAL_STRENGTH_MODERATE;
else if (UmtsRscp >=-110/*-123 -120*/)
level = SignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
log("mapUmtsSignalLevel, level=" + level);
/* Kalyy 20180416 }*/
return level;
// [ALPS03252546] -- END
}
//[ALPS01440836][ALPS01594704]-START: change level mapping rule of signal for CMCC
public int mapLteSignalLevel(int mLteRsrp, int mLteRssnr, int mLteSignalStrength) {
/*
* TS 36.214 Physical Layer Section 5.1.3 TS 36.331 RRC RSSI = received
* signal + noise RSRP = reference signal dBm RSRQ = quality of signal
* dB= Number of Resource blocksxRSRP/RSSI SNR = gain=signal/noise ratio
* = -10log P1/P2 dB
*/
int rssiIconLevel = SignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
int rsrpIconLevel = -1;
int snrIconLevel = -1;
//sunvov hj 20180607 modified 4G SignalStrength
if (mLteRsrp > -44) {
rsrpIconLevel = -1;
} else if (mLteRsrp >= -104/*-94 -85*/) {
rsrpIconLevel = SignalStrength.SIGNAL_STRENGTH_GREAT;
} else if (mLteRsrp >= -110/*-104 -95*/) {
rsrpIconLevel = SignalStrength.SIGNAL_STRENGTH_GOOD;
} else if (mLteRsrp >= -116/*-114 -105*/) {
rsrpIconLevel = SignalStrength.SIGNAL_STRENGTH_MODERATE;
} else if (mLteRsrp >= -122/*-124 -115*/) {
rsrpIconLevel = SignalStrength.SIGNAL_STRENGTH_POOR;
} else if (mLteRsrp >= -140) {
rsrpIconLevel = SignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
}
//sunvov hj 20180607 modified 4G SignalStrength