GSM signal strength Android JB4.3

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

GSM signal strength Android JB4.3

跳至解决方案
1,410 次查看
raghavendraning
Contributor I

Hi,

   I was using Android 4.0.4,IMX6sl.In this case GSM signal strength was fine.Later we migrated to JB4.3,with the same hardware environment.

But my GSM signal strenth is very poor.

标签 (2)
标记 (4)
0 项奖励
回复
1 解答
1,045 次查看
max_tsai
NXP Employee
NXP Employee

hi,

Android Framework thinks there is LTE signal, even there is GSM signal only as the below.

"frameworks/base/telephony/java/android/telephony/SignalStrength.java"

       level = getLteLevel();
       if (level == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) {
                 level = getGsmLevel();  // <--- Won't enter this line, even GSM signal only.
       }

You can add some conditions to let getLteLevel() return SIGNAL_STRENGTH_NONE_OR_UNKNOWN. The following is for reference.

--

diff --git a/telephony/java/android/telephony/SignalStrength.java b/telephony/java/android/telephony/SignalStrengt

index f998935..88fd379 100644

--- a/telephony/java/android/telephony/SignalStrength.java

+++ b/telephony/java/android/telephony/SignalStrength.java

@@ -743,6 +743,9 @@ public class SignalStrength implements Parcelable {

        if (DBG) log("getLTELevel - rsrp:" + mLteRsrp + " snr:" + mLteRssnr + " rsrpIconLevel:"

                + rsrpIconLevel + " snrIconLevel:" + snrIconLevel);

+

+      if (mLteRsrp == SignalStrength.INVALID) return

+ SIGNAL_STRENGTH_NONE_OR_UNKNOWN;

+

        /* Choose a measurement type to use for notification */

        if (snrIconLevel != -1 && rsrpIconLevel != -1) {

            /*

---

Regards,

Max

在原帖中查看解决方案

0 项奖励
回复
2 回复数
1,046 次查看
max_tsai
NXP Employee
NXP Employee

hi,

Android Framework thinks there is LTE signal, even there is GSM signal only as the below.

"frameworks/base/telephony/java/android/telephony/SignalStrength.java"

       level = getLteLevel();
       if (level == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) {
                 level = getGsmLevel();  // <--- Won't enter this line, even GSM signal only.
       }

You can add some conditions to let getLteLevel() return SIGNAL_STRENGTH_NONE_OR_UNKNOWN. The following is for reference.

--

diff --git a/telephony/java/android/telephony/SignalStrength.java b/telephony/java/android/telephony/SignalStrengt

index f998935..88fd379 100644

--- a/telephony/java/android/telephony/SignalStrength.java

+++ b/telephony/java/android/telephony/SignalStrength.java

@@ -743,6 +743,9 @@ public class SignalStrength implements Parcelable {

        if (DBG) log("getLTELevel - rsrp:" + mLteRsrp + " snr:" + mLteRssnr + " rsrpIconLevel:"

                + rsrpIconLevel + " snrIconLevel:" + snrIconLevel);

+

+      if (mLteRsrp == SignalStrength.INVALID) return

+ SIGNAL_STRENGTH_NONE_OR_UNKNOWN;

+

        /* Choose a measurement type to use for notification */

        if (snrIconLevel != -1 && rsrpIconLevel != -1) {

            /*

---

Regards,

Max

0 项奖励
回复
1,045 次查看
raghavendraning
Contributor I

Hi,

What you pointing is exactly correct.

Thanks for your response.

0 项奖励
回复