0

GSM および CDMA デバイスの signalStrength.getGsmSignalStrength() を試してみましたが、sim がデバイスに挿入されていない場合でも、両方のデバイスが強度を発揮することに気付きました。ネットワークが良好な場合にのみ電話をかけたり、メッセージを送信したりしたいこれ?また、この API が返す信号強度も知りたいです!!... できるだけ早く返信してください。

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

}
4

2 に答える 2

6

これは、Sim カードの可用性を検出するのに役立つと思います。

TelephonyManager m = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
if (m.getSimState() != TelephonyManager.SIM_STATE_ABSENT){
  // SIM card
} else {
  // No SIM card
}

さらに、これを読むことができます

于 2012-02-27T08:17:52.523 に答える
2

SIM が挿入されていなくても、機内モードがオフになっていれば携帯電話はセルラー ネットワークに接続されるため、緊急通報を行うことができます。携帯電話事業者は法律により、そのような通話を許可する必要があります。そのため、SIM のない電話をネットワークに登録することを許可し、電話は緊急電話専用モードになります。そのため、SIM なしで信号強度の値を読み取ります。

于 2014-12-14T20:26:20.827 に答える