diff options
| author | 2017-10-20 10:25:11 +0800 | |
|---|---|---|
| committer | 2018-01-23 18:32:22 +0000 | |
| commit | 5c40d8914d85708779e8df1c49a7bea2750205cb (patch) | |
| tree | f611d23a3b068f8ac240ea68196e08dbaa76db3f | |
| parent | 9becf4b3346ba2501f3af62d74cef1f4a5797ce8 (diff) | |
Fix getAsuLevel returns "99" in Lte and TdScdma.
GetAsuLevel method judges valid signal by
getLteLevel/getTdScdmaLevel. However, level is
SIGNAL_STRENGTH_NONE_OR_UNKNOWN does not mean not in
Lte/TdScdma.
For example, if mLteRsrp is in (threshRsrp[1],
threshRsrp[0]], getLteLevel would return
SIGNAL_STRENGTH_NONE_OR_UNKNOWN. But this only
means Lte signal is very weak, and ASU should be
(mLteRsrp + 140) not "99" (3GPP 27.007 Sec 8.69).
Bug: 72116430
Test: Build
Change-Id: If930c3e3d23a9af7b2e51e3560cc28607a6328c0
| -rw-r--r-- | telephony/java/android/telephony/SignalStrength.java | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/telephony/java/android/telephony/SignalStrength.java b/telephony/java/android/telephony/SignalStrength.java index f1f965196322..fc2ef2782b78 100644 --- a/telephony/java/android/telephony/SignalStrength.java +++ b/telephony/java/android/telephony/SignalStrength.java @@ -492,14 +492,12 @@ public class SignalStrength implements Parcelable { public int getAsuLevel() { int asuLevel = 0; if (mIsGsm) { - if (getLteLevel() == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) { - if (getTdScdmaLevel() == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) { - asuLevel = getGsmAsuLevel(); - } else { - asuLevel = getTdScdmaAsuLevel(); - } - } else { + if (mLteRsrp != SignalStrength.INVALID) { asuLevel = getLteAsuLevel(); + } else if (mTdScdmaRscp != SignalStrength.INVALID) { + asuLevel = getTdScdmaAsuLevel(); + } else { + asuLevel = getGsmAsuLevel(); } } else { int cdmaAsuLevel = getCdmaAsuLevel(); |