2012-05-10 20 views
2

Androidを使用してCDMA/GSM信号強度を取得する方法を知りたい。信号強度を取得する

注:getCdmaDbm()メソッドを使用しましたが、常に-1を返します。

答えて

1

使用PhoneStateListener設定メニューで、ネットワークモードを= WCDAのみ '「信号強度を取得するためのonSignalStrengthsChanged:

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(); 
      } 
     } 

    } 

許可:

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

isGsm()私は設定が、このメソッドは常にtrueを返します'実際のデバイスで。 –

+0

http://developer.android.com/reference/android/telephony/SignalStrength.html retrun本当にそれはGSMのためのものです –

+0

あなたの助けに感謝します。 –

関連する問題