diff options
author | Ramesh Sudini <ramesh.sudini@motorola.com> | 2011-05-09 09:45:26 -0500 |
---|---|---|
committer | Wink Saville <wink@google.com> | 2011-05-09 10:57:42 -0700 |
commit | 5d7b9271b3f8a5f27c789a2b673e4bfd532b280c (patch) | |
tree | 86ca7d3a3758adda7f995845dfc9cbe9c2170226 /telephony/java/android/telephony/SignalStrength.java | |
parent | 5de8226cc7caea7a52d9f2538f87d2cc34214ad0 (diff) | |
download | frameworks_base-5d7b9271b3f8a5f27c789a2b673e4bfd532b280c.zip frameworks_base-5d7b9271b3f8a5f27c789a2b673e4bfd532b280c.tar.gz frameworks_base-5d7b9271b3f8a5f27c789a2b673e4bfd532b280c.tar.bz2 |
Telephony: Signal Strength Changes.
Change-Id: Ia406d21d860533e699a90d15130edcbc705ec645
Diffstat (limited to 'telephony/java/android/telephony/SignalStrength.java')
-rw-r--r-- | telephony/java/android/telephony/SignalStrength.java | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/telephony/java/android/telephony/SignalStrength.java b/telephony/java/android/telephony/SignalStrength.java index 1767dd9..a88825b 100644 --- a/telephony/java/android/telephony/SignalStrength.java +++ b/telephony/java/android/telephony/SignalStrength.java @@ -556,10 +556,7 @@ public class SignalStrength implements Parcelable { * @hide */ public int getLteDbm() { - log("TODO: teach getLteDbm to compute dBm properly"); - int level = -1; - if (DBG) log("getLteDbm=" + level); - return level; + return mLteRsrp; } /** @@ -568,22 +565,33 @@ public class SignalStrength implements Parcelable { * @hide */ public int getLteLevel() { - log("TODO: teach getLteLevel to compute Level properly"); - int level = SIGNAL_STRENGTH_MODERATE; - if (DBG) log("getLteLevel=" + level); - return level; + int levelLteRsrp = 0; + + if (mLteRsrp == -1) levelLteRsrp = 0; + else if (mLteRsrp >= -85) levelLteRsrp = SIGNAL_STRENGTH_GREAT; + else if (mLteRsrp >= -95) levelLteRsrp = SIGNAL_STRENGTH_GOOD; + else if (mLteRsrp >= -105) levelLteRsrp = SIGNAL_STRENGTH_MODERATE; + else if (mLteRsrp >= -115) levelLteRsrp = SIGNAL_STRENGTH_POOR; + else levelLteRsrp = 0; + + if (DBG) log("Lte level: "+levelLteRsrp); + return levelLteRsrp; } /** - * Get the LTE signal level as an asu value between 0..31, 99 is unknown + * Get the LTE signal level as an asu value between 0..97, 99 is unknown + * Asu is calculated based on 3GPP RSRP. Refer to 3GPP 27.007 (Ver 10.3.0) Sec 8.69 * * @hide */ public int getLteAsuLevel() { - log("TODO: teach getLteAsuLevel to compute asu Level properly"); - int level = 4; - if (DBG) log("getLteAsuLevel=" + level); - return level; + int lteAsuLevel = 99; + int lteDbm = getLteDbm(); + if (lteDbm <= -140) lteAsuLevel = 0; + else if (lteDbm >= -43) lteAsuLevel = 97; + else lteAsuLevel = lteDbm + 140; + if (DBG) log("Lte Asu level: "+lteAsuLevel); + return lteAsuLevel; } /** |