summaryrefslogtreecommitdiffstats
path: root/telephony/java/android/telephony/SignalStrength.java
diff options
context:
space:
mode:
authorRamesh Sudini <ramesh.sudini@motorola.com>2011-05-09 09:45:26 -0500
committerWink Saville <wink@google.com>2011-05-09 10:57:42 -0700
commit5d7b9271b3f8a5f27c789a2b673e4bfd532b280c (patch)
tree86ca7d3a3758adda7f995845dfc9cbe9c2170226 /telephony/java/android/telephony/SignalStrength.java
parent5de8226cc7caea7a52d9f2538f87d2cc34214ad0 (diff)
downloadframeworks_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.java34
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;
}
/**