我想在任何按钮单击时获得android设备中的当前信号强度。
我写了这个
public static int getSignal(Context c) {
class MyPhoneStateListener extends PhoneStateListener {
int signal;
@Override
public void onSignalStrengthsChanged(SignalStrength signalStrength) {
super.onSignalStrengthsChanged(signalStrength);
signal = signalStrength.getGsmSignalStrength();
}
}
TelephonyManager Tel;
MyPhoneStateListener MyListener;
MyListener = new MyPhoneStateListener();
Tel = (TelephonyManager) c.getSystemService(Context.TELEPHONY_SERVICE);
Tel.listen(MyListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
Tel.listen(MyListener, PhoneStateListener.LISTEN_NONE);
return MyListener.signal;
}
代码,但总是返回0
请有人告诉我如何获得当前的信号强度。
最佳答案
代码,但总是返回我0
当然。 onSignalStrengthsChanged()
尚未被调用。而且,您不再使用LISTEN_NONE
行,因此您可能永远不会
请任何人告诉我如何获得当前的信号强度。
如果您摆脱了onSignalStrengthsChanged()
行,则一旦检测到信号强度发生变化,就会在LISTEN_NONE
中获得信号强度。完成侦听器操作后,才使用LISTEN_NONE
。