2012-05-10 1 views
2

Je veux savoir comment obtenir la force du signal CDMA/GSM en utilisant Android.Obtenir la force du signal

Remarque: J'ai utilisé la méthode getCdmaDbm() mais elle renvoie toujours -1.

Répondre

1

utilisation PhoneStateListener « onSignalStrengthsChanged s pour obtenir SignalStrength:

TelephonyManager telephonyManager = (TelephonyManager)getSystemService(srvcName); 
AndroidPhoneStateListener phoneStateListener = new AndroidPhoneStateListener (this); 
telephonyManager.listen(phoneStateListener,  
PhoneStateListener.LISTEN_SIGNAL_STRENGTHS); 
    public class AndroidPhoneStateListener extends PhoneStateListener { 
     public static int signalStrengthValue; 

     @Override 
     public void onSignalStrengthsChanged(SignalStrength signalStrength) { 
      super.onSignalStrengthsChanged(signalStrength); 
      if (signalStrength.isGsm()) { 
       if (signalStrength.getGsmSignalStrength() != 99) 
        signalStrengthValue = signalStrength.getGsmSignalStrength() * 2 - 113; 
       else 
        signalStrengthValue = signalStrength.getGsmSignalStrength(); 
      } else { 
       signalStrengthValue = signalStrength.getCdmaDbm(); 
      } 
     } 

    } 

Permission:

<uses-permission Android:name="android.permission.READ_PHONE_STATE" /> 
+0

isGsm(): Cette méthode renvoie toujours bien que je mis en 'mode réseau = WCDA uniquement' dans le menu de réglage sur un appareil réel. –

+0

voir http://developer.android.com/reference/android/telephony/SignalStrength.html retrun vrai c'est pour GSM –

+0

merci pour votre aide. –

Questions connexes