signalStrength.getGsmSignalStrength()也给出了没有SIM卡的值

JAP*_*APS 0 android gsm cdma signal-strength

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

}
Run Code Online (Sandbox Code Playgroud)

waq*_*lam 6

我相信这可以帮助您检测SIM卡的可用性:

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

此外,你可能会读到这个