GSM signal strength Android JB4.3

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

GSM signal strength Android JB4.3

Jump to solution
1,077 Views
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.

Labels (2)
Tags (4)
0 Kudos
1 Solution
712 Views
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

View solution in original post

0 Kudos
2 Replies
713 Views
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 Kudos
712 Views
raghavendraning
Contributor I

Hi,

What you pointing is exactly correct.

Thanks for your response.

0 Kudos