Sah*_* Mj 7 android signal-strength
我使用以下代码来获取信号强度,
SignalStrengthListener signalStrengthListener;
signalStrengthListener = new SignalStrengthListener();
((TelephonyManager) getSystemService(TELEPHONY_SERVICE)).listen(
signalStrengthListener,
SignalStrengthListener.LISTEN_SIGNAL_STRENGTHS);
Run Code Online (Sandbox Code Playgroud)
然后它正在聆听信号强度,
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);
}
}
Run Code Online (Sandbox Code Playgroud)
如果设备中存在SIM卡,则效果很好.但是当我从设备中移除SIM卡然后检查信号强度时,它仍然为信号强度提供了一些值.
我能想到的一个可能的解决方案是首先检查设备中是否存在SIM卡,然后显示信号强度.但我想知道对这种奇怪行为的解释以及可能的解决方案.
| 归档时间: |
|
| 查看次数: |
1216 次 |
| 最近记录: |