手机信号强度流程

来源:互联网 发布:matlab矩阵求交集 编辑:程序博客网 时间:2024/04/30 00:42

手机信号的获取

手机信号的获取包含两种情况

  1. 手机ap端主动获取信号状态
  2. 手机cp端上报信号状态
AP主动获取信号强度
  • 初始化时,GsmServiceStateTracker和CdmaServiceStateTracker的构造函数,通过调用RILJ的getSignalStrength(EVENT_GET_SIGNAL_STRGENGTH)获取信号状态。

  • ServiceStateTracker接收到EVENT_GET_SIGNAL_STRGENGTH事件后,更新信号状态。其次,定时循环调用queueNextSignalStrengthPoll去获取信号状态,定时时长20s。

  • 获取后,通过PhoneBase.notifySignalStrength -> DefaultPhoneNotifier.notigySignalStrength ->
    TelephonyResgistry.notifySignalStrengthForSubscriber通知上层app。

  • 主动获取相关log

    RILJ >  SIGNAL_STRENGTHRILJ <  SIGNAL_STRENGTH
CP主动上报信号状态
  • ril会注册监听SIGNAL_STRENGTH事件,接收cp上报的信号消息。

  • Telephony注册EVENT_SIGNAL_STRENGTH_UPDATE事件,接收cp上报的信号强度消息。

  • 相关log

    RILJ < UNSOL_SIGNAL_STRENGTH
总结
  • 大部分是cp上报网络状态的变化,然后在rilc层去主动获取信号再上报,或者直接上报信号状态给ap。上报的频率很高,基本10s以内。

  • Telephony端初始化的时候主动获取,是以固定的时间间隔去获取信号状态。时间间隔20s。

  • 假如cp已经主动上报,那么Telephony RILJ便不会再去主动获取信号强度,queueNextSignalStrengthPoll这个函数直接返回。

1 0