Устройство, показывающее сигнал Сила, если нет сима

Я использовал следующий код, чтобы получить силу сигнала,

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

Он работает хорошо, если сим присутствует в устройстве. Но когда я удаляю симулятор с устройства, а затем проверяю уровень сигнала, он все же дает некоторое значение для силы сигнала.

Одно из возможных решений, о которых я могу думать, – это сначала проверить, присутствует ли сим-устройство в устройстве или нет, а затем показать силу сигнала. Но я хотел бы узнать объяснение этого странного поведения и возможное решение для него.