如何不使用侦听器而获得当前的CDMA信号强度?
如果信号电平发生变化,我不需要更新。
研究中,我还没有解决方案。如果它仅在变化时才显示出来,那么顶部的信号电平条如何工作?我只需要非常粗略地估计与条形相关的细胞信号强度。
ConnectivityManager cm=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
int CDMAdb=cm.SignalStrength.getCdmaDbm();
最佳答案
我不使用与调制解调器/ RIL相关的东西,但是由于电话在启动时会尝试连接到网络,因此我猜想显示信号强度的状态栏会在启动后立即开始监听信号强度的变化。您也可以通过实现starts automatically upon boot completion并注册一个接收PhoneStateListener
回调的onSignalStrengthsChanged
的服务来实现此目的。接收第一个回调之前的初始信号强度值由您决定(最小强度似乎是一个合理的初始值)。
然后,您的活动可以在需要时通过当前的强度(通过意图/粘合剂/任何方式)向服务查询。
关于android - 在没有监听器的情况下获取手机信号强度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11307096/