https://blog.csdn.net/happyguys12345/article/details/54406888?utm_source=blogxgwz1
信号值由下往上的流程
1.modem获取信号值
Qmi_nas.c (amss\mpss.ta.2.2\modem_proc\mmcp\mmode\qmi\src) qmi_nasi_get_signal_strength
2.通过qmi给ril
Qcril_qmi_nas.c (android\vendor\qcom\proprietary\qcril\qcril_qmi) qcril_qmi_nas_signal_strength_con_conv_cache2ril
3.这里会打一个log,搜索这里的log,便可以得知modem给ril的各个信号值
qcril_qmi_nas_dump_sign_strength_report
void qcril_qmi_nas_dump_sign_strength_report(RIL_SignalStrength* ril_signal_strength) {
QCRIL_LOG_FUNC_ENTRY();
QCRIL_LOG_INFO( "..GW"); QCRIL_LOG_INFO( ".. signalStrength %d, bitErrorRate %d", ril_signal_strength->GW_SignalStrength.signalStrength,
ril_signal_strength->GW_SignalStrength.bitErrorRate );
QCRIL_LOG_INFO( "..TDSCDMA"); #ifndef QMI_RIL_UTF QCRIL_LOG_INFO( ".. signalStrength %d", ril_signal_strength->TD_SCDMA_SignalStrength.rscp ); #endif
QCRIL_LOG_INFO( "..CDMA"); QCRIL_LOG_INFO( ".. dbm %d, ecio %d ", ril_signal_strength->CDMA_SignalStrength.dbm,
ril_signal_strength->CDMA_SignalStrength.ecio );
QCRIL_LOG_INFO( "..EVDO"); QCRIL_LOG_INFO( ".. dbm %d, ecio %d, signalNoiseRatio %d", ril_signal_strength->EVDO_SignalStrength.dbm,
ril_signal_strength->EVDO_SignalStrength.ecio,
ril_signal_strength->EVDO_SignalStrength.signalNoiseRatio );
QCRIL_LOG_INFO( "..LTE");
QCRIL_LOG_INFO( ".. signalStrength %d, rsrp %d, rsrq %d, rsnnr %d",
ril_signal_strength->LTE_SignalStrength.signalStrength,
ril_signal_strength->LTE_SignalStrength.rsrp,
ril_signal_strength->LTE_SignalStrength.rsrq,
ril_signal_strength->LTE_SignalStrength.rssnr );
QCRIL_LOG_FUNC_RETURN(); }
4.往上再给Qcril_qmi_nas的qcril_qmi_nas_request_signal_strength Qcril_qmi_nas.c (android\vendor\qcom\proprietary\qcril\qcril_qmi) qcril_qmi_nas_request_signal_strength
5.往上,接受ril的RIL_REQUEST_SIGNAL_STRENGTH 请求
Qcril.c (android\vendor\qcom\proprietary\qcril\qcril_qmi) qcril_event_table
/* 19 - RIL_REQUEST_SIGNAL_STRENGTH */ { QCRIL_REG_ALL_ACTIVE_STATES( RIL_REQUEST_SIGNAL_STRENGTH, qcril_qmi_nas_request_signal_strength ) },
6.往上,给RIL的getSignalStrength
RIL.java (android\frameworks\opt\telephony\src\java\com\android\internal\telephony) getSignalStrength
7.往上给GSST的queueNextSignalStrengthPoll
GsmServiceStateTracker.java
(android\frameworks\opt\telephony\src\java\com\android\internal\telephony\gsm) handleMessage
EVENT_SIM_READY
EVENT_GET_SIGNAL_STRENGTH queueNextSignalStrengthPoll
8.往上给SST的onSignalStrengthResult和notifySignalStrength ServiceStateTracker.java
(frameworks\opt\telephony\src\java\com\android\internal\telephony) onSignalStrengthResult notifySignalStrength
9.往上给PhoneBase的notifySignalStrength
PhoneBase.java (frameworks\opt\telephony\src\java\com\android\internal\telephony) notifySignalStrength
10.往上给DefaultPhoneNotifier的notifySignalStrength
DefaultPhoneNotifier.java
(frameworks\opt\telephony\src\java\com\android\internal\telephony) notifySignalStrength
Rlog.d(LOG_TAG, "notifySignalStrength: mRegistry=" + mRegistry
+ " ss=" + sender.getSignalStrength() + " sender=" + sender);
11.往上给TelephonyRegistry的notifySignalStrengthForSubscriber
TelephonyRegistry.java (frameworks\base\services\core\java\com\android\server) notifySignalStrengthForSubscriber
如此,SignalStrength的各个成员变量便有了对应的信号值,做为显示几格的标准