我想在任何按钮单击时获得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

08-06 08:08