高通 spn 运营商名称显示逻辑
日志分析:
查看当前驻留的data and voice
01-22 06:30:25.094 D/RILJ ( 1698): [0074]< DATA_REGISTRATION_STATE {.regState = REG_HOME, .rat = NR, .reasonForDenial = NONE, .cellIdentity = {.nr = {.base = {.mcc = 460, .mnc = 11, .nci = -2113432399, .pci = 700, .tac = 3670033, .nrarfcn = 422930, .operatorNames = {.alphaLong = , .alphaShort = }}, .additionalPlmns = [], .bands = [1]}}, .registeredPlmn = 46011, .accessTechnologySpecificInfo = {.eutranInfo = {.lteVopsInfo = {.isVopsSupported = false, .isEmcBearerSupported = false}, .nrIndicators = {.isEndcAvailable = false, .isDcNrRestricted = false, .isNrAvailable = false}}}} [PHONE0]
01-22 06:30:25.139 D/RILJ ( 1698): [0076]< VOICE_REGISTRATION_STATE {.regState = REG_HOME, .rat = NR, .reasonForDenial = NONE, .cellIdentity = {.nr = {.base = {.mcc = 460, .mnc = 11, .nci = -2113432399, .pci = 700, .tac = 3670033, .nrarfcn = 422930, .operatorNames = {.alphaLong = , .alphaShort = }}, .additionalPlmns = [], .bands = [1]}}, .registeredPlmn = 46011, .accessTechnologySpecificInfo = {.eutranInfo = {.lteVopsInfo = {.isVopsSupported = false, .isEmcBearerSupported = false}, .nrIndicators = {.isEndcAvailable = false, .isDcNrRestricted = false, .isNrAvailable = false}}}} [PHONE0]
这里显示data voice均驻留上NR小区,但是.operatorNames = {.alphaLong = , .alphaShort = }}运营商名称为空
查看当前更新状态,是否需要更新spn,可直接搜索sst 主要代码都在servicestatetracker.java里面
位置和网络状态发生变化【hasChanged = true hasLocationChanged = true 】,网络状态和位置均发生改变,需要更新spn
01-22 06:30:25.139 D/SST ( 1698): [0] pollStateDone: hasRegistered = true hasDeregistered = false hasDataAttached = {1=true, 2=false} hasDataDetached = {1=false, 2=false} hasDataRegStateChanged = {1=true, 2=false} hasRilVoiceRadioTechnologyChanged = true hasRilDataRadioTechnologyChanged = {1=true, 2=false} hasDataTransportPreferenceChanged = false hasChanged = true hasVoiceRoamingOn = false hasVoiceRoamingOff = false hasDataRoamingOn =false hasDataRoamingOff = false hasLocationChanged = true has4gHandoff = false hasMultiApnSupport = false hasLostMultiApnSupport = false hasCssIndicatorChanged = false hasNrFrequencyRangeChanged = false hasNrStateChanged = false hasAirplaneModeOnlChanged = false
需要重新pollstate
驻上NR 但是mAlphaLong = mAlphaShort = 仍然为空
01-22 06:30:25.566 D/SST ( 1698): [0] handlePollStateResultMessage: PS cellular. NetworkRegistrationInfo{ domain=PS transportType=WWAN registrationState=HOME networkRegistrationState=HOME roamingType=NOT_ROAMING accessNetworkTechnology=NR rejectCause=0 emergencyEnabled=false availableServices=[DATA] cellIdentity=CellIdentityNr:{ mPci = 700 mTac = 3670033 mNrArfcn = 422930 mBands = [1] mMcc = 460 mMnc = 11 mNci = 9223372036854775807 mAlphaLong = mAlphaShort = mAdditionalPlmns = {} } voiceSpecificInfo=null dataSpecificInfo=android.telephony.DataSpecificRegistrationInfo :{ maxDataCalls = 16 isDcNrRestricted = false isNrAvailable = false isEnDcAvailable = false mLteAttachResultType = 0 mLteAttachExtraInfo = 0 LteVopsSupportInfo : mVopsSupport = 3 mEmcBearerSupport = 3 } nrState=NONE rRplmn=46011 isUsingCarrierAggregation=false}
应该会有多个pollstate,最后会有个combine综合
mOperatorAlphaLong=CHN-CT, mOperatorAlphaShort=CT,这里可以看到有运营商名称
但是CellIdentityNr小区驻网信息里面的运营商名称依旧为空。 这里显示出来的名称可能是sim卡里面的,缓存的或者运营商配置提供
01-22 06:30:25.601 D/SST ( 1698): [0] combinePsRegistrationStates: {mVoiceRegState=0(IN_SERVICE), mDataRegState=0(IN_SERVICE), mChannelNumber=422930, duplexMode()=0, mCellBandwidths=[], mOperatorAlphaLong=CHN-CT, mOperatorAlphaShort=CT, isManualNetworkSelection=false(automatic), getRilVoiceRadioTechnology=20(NR_SA), getRilDataRadioTechnology=20(NR_SA), mCssIndicator=unsupported, mNetworkId=-1, mSystemId=-1, mCdmaRoamingIndicator=-1, mCdmaDefaultRoamingIndicator=-1, mIsEmergencyOnly=false, isUsingCarrierAggregation=false, mArfcnRsrpBoost=0, mNetworkRegistrationInfos=[NetworkRegistrationInfo{ domain=PS transportType=WLAN registrationState=UNKNOWN networkRegistrationState=UNKNOWN roamingType=NOT_ROAMING accessNetworkTechnology=UNKNOWN rejectCause=0 emergencyEnabled=false availableServices=[] cellIdentity=null voiceSpecificInfo=null dataSpecificInfo=null nrState=NONE rRplmn= isUsingCarrierAggregation=false}, NetworkRegistrationInfo{ domain=PS transportType=WWAN registrationState=HOME networkRegistrationState=HOME roamingType=NOT_ROAMING accessNetworkTechnology=NR rejectCause=0 emergencyEnabled=false availableServices=[DATA] cellIdentity=CellIdentityNr:{ mPci = 700 mTac = 3670033 mNrArfcn = 422930 mBands = [1] mMcc = 460 mMnc = 11 mNci = 9223372036854775807 mAlphaLong = mAlphaShort = mAdditionalPlmns = {} } voiceSpecificInfo=null dataSpecificInfo=android.telephony.DataSpecificRegistrationInfo :{ maxDataCalls = 16 isDcNrRestricted = false isNrAvailable = false isEnDcAvailable = false mLteAttachResultType = 0 mLteAttachExtraInfo = 0 LteVopsSupportInfo : mVopsSupport = 3 mEmcBearerSupport = 3 } nrState=NONE rRplmn=46011 isUsingCarrierAggregation=false}, NetworkRegistrationInfo{ domain=CS transportType=WWAN registrationState=HOME networkRegistrationState=HOME roamingType=NOT_ROAMING accessNetworkTechnology=NR rejectCause=0 emergencyEnabled=false availableServices=[VOICE,SMS,VIDEO] cellIdentity=CellIdentityNr:{ mPci = 700 mTac = 3670033 mNrArfcn = 422930 mBands = [1] mMcc = 460 mMnc = 11 mNci = 92 ...
接下来搜关键字spn
1-22 06:30:25.140 D/SST ( 1698): [0] updateSpnDisplayLegacy+
01-22 06:30:25.140 D/SST ( 1698): [0] updateSpnDisplay: rawPlmn = CHN-CT
01-22 06:30:25.140 D/SST ( 1698): [0] updateSpnDisplay: rawSpn = //卡未加载完成显示为空
01-22 06:30:25.140 D/SST ( 1698): [0] updateSpnDisplay: updateSpnDisplay: changed sending intent, rule=2, showPlmn='true', plmn='CHN-CT', showSpn='false', spn='', dataSpn='', subId='1'//此时按plmn显示
01-22 06:30:25.141 D/SST ( 1698): [0] updateSpnDisplayLegacy-
SIMRecords load sim卡加载完成读EF_SPN 乱码
01-22 06:30:25.229 D/SIMRecords( 1698): [SIMRecords-0] Load EF_SPN: 涓浗鐢典俊 carrierNameDisplayCondition: 3
01-22 06:30:25.233 D/SIMRecords( 1698): [SIMRecords-0] SST: UsimServiceTable[88]={ OUTGOING_CALL_INFO, INCOMING_CALL_INFO, SM_STORAGE, SM_STATUS_REPORTS, SM_SERVICE_PARAMS, CAP_CONFIG_PARAMS_2, SPN, USER_PLMN_SELECT, MSISDN, GSM_ACCESS, DATA_DL_VIA_SMS_PP, CALL_CONTROL_BY_USIM, IGNORED_1, ENABLED_SERVICES_TABLE, GSM_SECURITY_CONTEXT, OPERATOR_PLMN_SELECT, HPLMN_SELECT, EXTENSION_5, MWI_STATUS, CFI_STATUS, EQUIVALENT_HPLMN, TERMINAL_PROFILE_AFTER_UICC_ACTIVATION, EPS_MOBILITY_MANAGEMENT_INFO, CALL_CONTROL_ON_EPS_PDN_CONNECTION_BY_USIM }
01-22 06:30:25.301 D/SST ( 1698): [0] updateSpnDisplayLegacy+
01-22 06:30:25.301 D/SST ( 1698): [0] updateSpnDisplay: rawPlmn = CHN-CT
01-22 06:30:25.301 D/SST ( 1698): [0] updateSpnDisplay: rawSpn = 涓浗鐢典俊
01-22 06:30:25.301 D/SST ( 1698): [0] updateSpnDisplay: updateSpnDisplay: changed sending intent, rule=3, showPlmn='true', plmn='CHN-CT', showSpn='true', spn='涓浗鐢典俊', dataSpn='涓浗鐢典俊', subId='1' // spn plmn都存在 按spn显示
01-22 06:30:25.302 D/SST ( 1698): [0] updateSpnDisplayLegacy-
发送更新spn广播
//发送广播 将更新后的ServiceState广播给所有监听者(包括SystemUI)
01-22 06:30:25.142 D/SST ( 1698): [0] Broadcasting ServiceState : {mVoiceRegState=0(IN_SERVICE), mDataRegState=0(IN_SERVICE), mChannelNumber=422930, duplexMode()=0, mCellBandwidths=[], mOperatorAlphaLong=CHN-CT, mOperatorAlphaShort=CT, isManualNetworkSelection=false(automatic), getRilVoiceRadioTechnology=20(NR_SA), getRilDataRadioTechnology=20(NR_SA), mCssIndicator=unsupported, mNetworkId=-1, mSystemId=-1, mCdmaRoamingIndicator=-1, mCdmaDefaultRoamingIndicator=-1, mIsEmergencyOnly=false, isUsingCarrierAggregation=false, mArfcnRsrpBoost=0, mNetworkRegistrationInfos=[NetworkRegistrationInfo{ domain=PS transportType=WLAN registrationState=UNKNOWN networkRegistrationState=UNKNOWN roamingType=NOT_ROAMING accessNetworkTechnology=UNKNOWN rejectCause=0 emergencyEnabled=false availableServices=[] cellIdentity=null voiceSpecificInfo=null dataSpecificInfo=null nrState=NONE rRplmn= isUsingCarrierAggregation=false}, NetworkRegistrationInfo{ domain=CS transportType=WWAN registrationState=HOME networkRegistrationState=HOME roamingType=NOT_ROAMING accessNetworkTechnology=NR rejectCause=0 emergencyEnabled=false availableServices=[VOICE,SMS,VIDEO] cellIdentity=CellIdentityNr:{ mPci = 700 mTac = 3670033 mNrArfcn = 422930 mBands = [1] mMcc = 460 mMnc = 11 mNci = 9223372036854775807 mAlphaLong = mAlphaShort = mAdditionalPlmns = {} } voiceSpecificInfo=VoiceSpecificRegistrationInfo { mCssSupported=false mRoamingIndicator=0 mSystemIsInPrl=0 mDefaultRoamingIndicator=0} dataSpecificInfo=null nrState=NONE rRplmn=46011 isUsingCarrierAggregation=false}, NetworkRegistrationInfo{ domain=PS transportType=WWAN registrationState=HOME networkRegistrationState=HOME roamingType=NOT_ROAMING accessNetworkTechnology=NR rejectCause=0 emergencyEnabled=false availableServices=[DATA] cellIdentity=CellIdentityNr:{ mPci = 700 mTac = 3670033 mNrArfcn = 422930 mBands = [1] mMcc = 460 mMnc = 11 mNci = 9223372036854775807 mAlphaLong = mAlphaShort = mAdditionalPlmns = {} } voiceSpecificInfo=null dataSpecificInfo=android.telephony.DataSp ...
这里需要确认下小区驻上了,是否有许可
01-22 06:30:25.561 I/CSST ( 1698): isNrSupported: carrierConfigEnabled: true, AccessFamilySupported: true, isNrNetworkTypeAllowed: true ← NR网络允许
有时候可能会有如下log打印,可不用关注,著需要关注正常log即可
01-22 07:53:02.003 D/SST ( 1743): [0] handlePollStateResult exception java.lang.IllegalStateException: Service not connected.
01-22 07:53:02.003 E/SST ( 1743): [0] handlePollStateResult: RIL returned an error where it must succeed: java.lang.IllegalStateException: Service not connected.
sst最终发送广播ACTION_SERVICE_PROVIDERS_UPDATED 通知systemUI更新
sst中调用关系
updateSpnDisplay()--》updateSpnDisplayLegacy()--》notifySpnDisplayUpdate()-->Intent intent = new Intent(TelephonyManager.ACTION_SERVICE_PROVIDERS_UPDATED);
接收方systemUI ->MobileSignalController.java--》updateNetworkName
更多推荐

所有评论(0)