Android SPN/PLMN 显示逻辑简介
功能描述
当设备驻网后(运营商网络),会在状态栏、锁屏界面、下拉控制中心显示运营商的名称。
此名称来源有两种:
1、SPN(Service Provider Name)
2、PLMN (Public Land Mobile Name)
功能 | AOSP默认逻辑 | |
---|---|---|
SPN | 提供SIM卡的运营商名称 | 预置在SIM EF中,SIM卡发行运营商名称。 |
PLMN | 驻网的运营商名称 | 驻网成功后从注册网络中获取。 |
以上是AOSP原生逻辑,由于有些运营商预置的SPN是空的,OEM/ODM开发的时候会针对卡信息override去规避这种情况。
业务流程
以GSM手机驻移动网络的场景分析显示情况。
网络名称显示在不同界面,但数据来源一致的,跟网络状态信息一样,由ServiceStateTracker负责处理。主要逻辑:
1、获取确认两种显示名称
- 根据网络状态来确定PLMN的显示名称
- 读取SIM卡中SPN显示名称
2、根据SIM卡信息确定显示规则
- 定了是显示PLMN或SPN或两者都
- IMS 网络下还有dataSpn
3、ServiceStateTracker广播名称信息
将PLMN&SPN显示名称和显示规则display rule标志位广播出去
- 广播消息:TelephonyIntents.SPN_STRINGS_UPDATED_ACTION
- SystemUI和Keyguard(锁屏) APP