2010-11-13 48 views
2

J'essaie de trouver des méthodes pour récupérer des paramètres de qualité comme BER et CIR. La seule chose que j'ai pu trouver dans Google et dans le site Web de développeur Android était getGsmBitErrorRate(), mais il semble afficher -1 pour tout le temps. Alors, y a-t-il un moyen d'obtenir des paramètres de qualité autrement? Ou peut-être que je fais juste quelque chose de mal?Comment récupérer les paramètres de qualité du signal GSM sur Android?

+0

Peut-être un bug?: Http://code.google.com/p/android/issues/detail?id=9271 – dacwe

Répondre

1

Est-ce que cela fonctionne pour vous?

TelephonyManager SignalManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 

    PhoneStateListener signalListener = new PhoneStateListener() { 

     public void onCallForwardingIndicatorChanged(boolean cfi) { 
     } 

     public void onCallStateChanged(int state, String incomingNumber) { 
     } 

     public void onCellLocationChanged(CellLocation location) { 
     } 

     public void onDataActivity(int direction) { 
     } 

     public void onDataConnectionStateChanged(int state) { 
     } 

     public void onDataConnectionStateChanged(int state, int networkType) { 
     } 

     public void onMessageWaitingIndicatorChanged(boolean mwi) { 
     } 

     public void onServiceStateChanged(ServiceState serviceState) { 
     } 

     public void onSignalStrengthsChanged(SignalStrength signalStrength) { 
      super.onSignalStrengthsChanged(signalStrength); 

      Log.e("onSignalStrengthsChanged: ", "GSM Cinr = " 
        + signalStrength.getGsmSignalStrength()); 
     } 

    }; 

    SignalManager.listen(signalListener, 
      PhoneStateListener.LISTEN_SIGNAL_STRENGTH);