vendor/mediatek/proprietary/frameworks/opt/telephony-base/java/mediatek/telephony/SignalStrengthExt.java
联通3G信号增强:移动网络设置成3G后,可以在Settings-System-About tablet-Status-SIM status 查看SIM卡的信号强度值,一般 -85 以上满格。
12345678910111213141516171819202122232425 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 if ((UmtsRscp > -25) || (UmtsRscp == SignalStrength.INVALID)) level = SignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN; else if (UmtsRscp >= -85) level = SignalStrength.SIGNAL_STRENGTH_GREAT; else if (UmtsRscp >= -100) level = SignalStrength.SIGNAL_STRENGTH_GOOD; else if (UmtsRscp >= -110) level = SignalStrength.SIGNAL_STRENGTH_MODERATE; else if (UmtsRscp >= -120) level = SignalStrength.SIGNAL_STRENGTH_POOR; else level = SignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN; log("mapUmtsSignalLevel, level=" + level); return level; // [ALPS03252546] -- END }
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
if ((UmtsRscp > -25) || (UmtsRscp == SignalStrength.INVALID))
level = SignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
else if (UmtsRscp >= -85)
level = SignalStrength.SIGNAL_STRENGTH_GREAT;
else if (UmtsRscp >= -100)
level = SignalStrength.SIGNAL_STRENGTH_GOOD;
else if (UmtsRscp >= -110)
level = SignalStrength.SIGNAL_STRENGTH_MODERATE;
else if (UmtsRscp >= -120)
level = SignalStrength.SIGNAL_STRENGTH_POOR;
else
level = SignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
log("mapUmtsSignalLevel, level=" + level);
return level;
// [ALPS03252546] -- END
}
联通4G信号增强:移动网络设置成4G后,可以在Settings-System-About tablet-Status-SIM status 查看SIM卡的信号强度值,一般 -85 以上满格。
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;
if (mLteRsrp > -44) {
rsrpIconLevel = -1;
} else if (mLteRsrp >= -85) {//zhuangwf
rsrpIconLevel = SignalStrength.SIGNAL_STRENGTH_GREAT;
} else if (mLteRsrp >= -100) {
rsrpIconLevel = SignalStrength.SIGNAL_STRENGTH_GOOD;
} else if (mLteRsrp >= -115) {
rsrpIconLevel = SignalStrength.SIGNAL_STRENGTH_MODERATE;
} else if (mLteRsrp >= -125) {
rsrpIconLevel = SignalStrength.SIGNAL_STRENGTH_POOR;
} else if (mLteRsrp >= -140) {
rsrpIconLevel = SignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
}
/*
* Values are -200 dB to +300 (SNR*10dB) RS_SNR >= 13.0 dB =>4 bars 4.5
* dB <= RS_SNR < 13.0 dB => 3 bars 1.0 dB <= RS_SNR < 4.5 dB => 2 bars
* -3.0 dB <= RS_SNR < 1.0 dB 1 bar RS_SNR < -3.0 dB/No Service Antenna
* Icon Only
*/
if (mLteRssnr > 300) {
snrIconLevel = -1;
} else if (mLteRssnr >= 65) {
snrIconLevel = SignalStrength.SIGNAL_STRENGTH_GREAT;
} else if (mLteRssnr >= 45) {
snrIconLevel = SignalStrength.SIGNAL_STRENGTH_GOOD;
} else if (mLteRssnr >= 10) {
snrIconLevel = SignalStrength.SIGNAL_STRENGTH_MODERATE;
} else if (mLteRssnr >= -30) {
snrIconLevel = SignalStrength.SIGNAL_STRENGTH_POOR;
} else if (mLteRssnr >= -200) {
snrIconLevel = SignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
}
Rlog.i(TAG, "getLTELevel - rsrp:" + mLteRsrp + " snr:" + mLteRssnr + " rsrpIconLevel:"
+ rsrpIconLevel + " snrIconLevel:" + snrIconLevel);
/* Choose a measurement type to use for notification */
if (snrIconLevel != -1 && rsrpIconLevel != -1) {
/*
* The number of bars displayed shall be the smaller of the bars
* associated with LTE RSRP and the bars associated with the LTE
* RS_SNR
*/
return (rsrpIconLevel < snrIconLevel ? rsrpIconLevel : snrIconLevel);
}
......
}