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都会接收到这个广播,根据广播数据更新显示

代码逻辑

  • 业务流程参考&#

猜你喜欢

转载自blog.csdn.net/qq_38666896/article/details/142169455