2

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

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

4

1 に答える 1

1

SignalStrength を取得するには、 PhoneStateListener の 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" />
于 2012-05-10T03:46:16.990 に答える