1、介绍
本文用来指导网络运营商名称的客制化开发工作。
Google 根据原生
3GPP 协议规则,根据显示环境和条件显示运营商和网络运营商名称,让
用户清楚自己所使用
SIM 卡环境。为了适配某些运营商需求及变化,
展讯平台在此基础上进行了功能的定制,通过各自配置文件来满足其需求。
2. Detail
2.1. Concept
SPN 的定制:覆盖 SIM 卡内 EF_SPN 名称,实现对实体运营商 SPN 和虚拟运营商 SPN 进行定制。
2.2. Function Blocks
功能代码路径:
1. vendor/sprd/platform/packages/
APPs/CarrierConfig/assets
2.
Frameworks/base/
Telephony/
Java/
Android/telephony/CarrierConfigManager.java
3. vendor/sprd/platform/frameworks/opt/telephony/src/java/com/android/internal
/telephony/uicc/SIMRecordsEx.java
通过 CarrierConfig 机制实现定制:
public static final String KEY_CARRIER_NAME_OVERRIDE_BOOL
= "carrier_name_override_bool"
public static final String KEY_CARRIER_NAME_STRING
= "carrier_name_string" 当 carrier_name_override_bool 为
false,以 SIM 卡内 EF_SPN 为准。
虚拟运营商情况:
各国虚拟运营商的判定条件不同,所以如果要定制虚拟运营商名称时,还需要在
carrier_config 的配置文件中依据虚拟运营商的判定条件进行配置
1. 以 PNN 区分虚拟运营商:
<carrier_config pnn= "xxx"> … </carrier_config>
2. 以 SPN 区分虚拟运营商:
<carrier_config spn= "xxx">
… </carrier_config>
3. 以
IMSI 区分虚拟运营商(满足 IMSI 条件的正则表达式):
<carrier_config imsi= "20801\d{1,3}67.*"> …
</carrier_config>
4. 以 GID 区分虚拟运营商:
<carrier_config gid1= "xxx"> …
</carrier_config>
2.3. Sample
以修改中国移动 46000 卡 的 SPN 举例:
vendor/sprd/platform/packages/apps/CarrierConfig/assets/carrier_config_46000.x
ml(如果不存在则自行创建)
<carrier_config>
<string name="carrier_name_string">京东通信</string>
<boolean name="carrier_name_override_bool" value="true"/>
</carrier_config>
查看状态栏及 SIM 卡管理运营商名称显示
更多详细内容请下载附件查看
Telephony客制化文档—运营商SPN定制.pdf
(453.37 KB, 下载次数: 3)