android - 如果没有 Sim 存在,设备显示信号强度

标签 android signal-strength

我使用下面的代码来获取信号强度,

    SignalStrengthListener signalStrengthListener;
    signalStrengthListener = new SignalStrengthListener();
    ((TelephonyManager) getSystemService(TELEPHONY_SERVICE)).listen(
            signalStrengthListener,
            SignalStrengthListener.LISTEN_SIGNAL_STRENGTHS);

然后它正在监听信号强度,

private class SignalStrengthListener extends PhoneStateListener {
    @Override
    public void onSignalStrengthsChanged(
            android.telephony.SignalStrength signalStrength) {

        // get the signal strength (a value between 0 and 31)
        int strengthAmplitude = signalStrength.getGsmSignalStrength();

        // do something with it (in this case we update a text view)
        // signalStrengthText.setText(String.valueOf(strengthAmplitude));
        if (strengthAmplitude > 30) {
            signalStrengthText.setText("Good");
            // signalStrengthText.setTextColor(getResources().getColor(R.color.good));
        } else if (strengthAmplitude > 20 && strengthAmplitude < 30) {
            signalStrengthText.setText("Average");
            // signalStrengthText.setTextColor(getResources().getColor(R.color.average));
        } else if (strengthAmplitude < 20) {
            signalStrengthText.setText("Weak");
            // signalStrengthText.setTextColor(getResources().getColor(R.color.weak));
        }

        super.onSignalStrengthsChanged(signalStrength);
    }
}

如果设备中存在 SIM 卡,则效果很好。但是当我从设备中取出 sim 卡然后检查信号强度时,它仍然提供了一些信号强度值。

我能想到的一个可能的解决方案是首先检查设备中是否存在 sim,然后显示信号强度。但我想知道对这种奇怪行为的解释以及可能的解决方案。

最佳答案

没有USIM小区服务需要 - 仅用于身份验证。否则紧急调用将失败。

一点也不奇怪...这是常识,因为您不会移除 radio 或禁用它。

一个简单的测试:移除 USIM 卡,调用紧急服务电话,假装您正在调用电话。

关于android - 如果没有 Sim 存在,设备显示信号强度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14577080/

相关文章:

java - 如何以编程方式将 View 约束到 ConstraintLayout 中的父 View

android - GSM RSSI 和 LTE RSSI 和 RSRP

ios - 可达性和信号强度

android - 有没有办法优雅地停止 init.rc 中的 android 服务(没有 SIGKILL)?

android - 在 android 应用程序中单击按钮调用条码扫描器

android - 如何获取我正在为 RSSI 读取的 BLE 设备的地址?

wifi - 使用 Wi-Fi 强度信号进行指纹识别

ios - 测量从 wifi 到 Iphone/Ipad 的信号强度

平滑wifi信号强度的算法

android - 当 View 获得焦点在 android 上时,如何显示软键盘?