Android を使用して CDMA / GSM 信号強度を取得する方法を知りたいです。
注 : getCdmaDbm() メソッドを使用しましたが、常に -1 が返されます。
Android を使用して CDMA / GSM 信号強度を取得する方法を知りたいです。
注 : getCdmaDbm() メソッドを使用しましたが、常に -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" />