【问题标题】:get current SignalStrengths android获取当前的 SignalStrengths android
【发布时间】:2013-07-09 06:45:32
【问题描述】:

我想通过单击任何按钮获取 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

请有人告诉我如何获得当前的信号强度。

【问题讨论】:

    标签: android


    【解决方案1】:

    代码,但它总是返回 0

    当然。 onSignalStrengthsChanged() 尚未被调用。而且,您不再使用LISTEN_NONE 线路收听,所以您可能永远不会

    请任何人告诉我如何获得当前的信号强度。

    如果您摆脱LISTEN_NONE 行,一旦检测到信号强度发生变化,您将在onSignalStrengthsChanged() 中获得信号强度。仅在完成侦听器后使用LISTEN_NONE

    【讨论】:

    • 目前无法获取当前信号强度?如果我不想等待不确定的时间来等待 onSignalStrengthsChanged() 做某事怎么办?
    • 如果您找到解决方案请告诉我?
    • 嗯-详细hereafter registering PhoneStateListener you will have instant notification。还是你的答案should be valid
    猜你喜欢
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-30
    相关资源
    最近更新 更多