Android carrier name display

The following conditions will trigger updating the carrier name.
1 Card loaded
2 IMS_CAPABILITY_CHANGED
3 LOCALE_CHANGED
4 SubscriptionsChanged
5 ServiceStateChanged

The entry for updating the operator name is ServiceStateTracker.updateSpnDisplay().
Here, it will be judged according to various conditions to display SPN or PLMN, or both,

PLMN is obtained through RIL.getOperator() when querying the state, and is stored in mVoiceOperatorAlphaLong/mVoiceOperatorAlphaShort of ServiceState.

SPN can be saved in EF_SPN (0x6F46), EF_SPN_CPHS (0x6F14) or EF_SPN_SHORT_CPHS (0x6F18)
, read in fetchSimRecords() after card READY, and then saved in IccRecords.mSpn

Finally, the broadcast SPN_STRINGS_UPDATED_ACTION is sent to notify.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325772089&siteId=291194637