首页 > 代码库 > android 网络运营商名称显示规则(锁屏界面,下拉列表)
android 网络运营商名称显示规则(锁屏界面,下拉列表)
一:Background & 相关flow
MTK Operator name display在手机中分成两种类型:
1. Sim卡名称:
根据开机从SIM卡中读取的IMSI去到Spn-conf.xml中(如果是MVNO的卡则是Virtual-spn-conf-by-***.xml中)匹配得到的name,会保存在SIMInfo这个database中,后续sim卡的名称就从此database中取得
关于MVNO可以参考如下FAQ:
ID: FAQ09811
[NW]如何区分MNO和MVNO
使用场景:
Setting下SimMangement中SIMInfo等
2. 注册上的网络的名称:
这部分显示所用string的主要来源有如下这些,且他们之间最终显示哪个source的string是根据网络和这些source的内容所最终确定的rule决定的(如当前是否roaming,当前注册的plmn是否在EF_SPDI中,EF_SPN中有相关flag标识要不要显示spn…)
关于rule:
请参考Gsm sec 51.011 EF_SPN的部分还有cphs spec;
code的部分,请参考SIMRecords. getDisplayRule和GsmServiceStateTracker. updateSpnDisplay:
(1) Sim卡中文件,如EF_SPN, EF_OPN, EF_SOPN, EF_OPL, EF_PNN, EF_SPDI…
(2) 注册到的网络的plmn,对应Spn-conf.xml
(3) NITZ,即网络下发的名字
Spec 51.011中EF_SPN定义的rule 总结就是:
1. 名称分为 SPN 和 Registered plmn(包括EONS, CPHS (即ONS), S-CPHS, NITZ, PLMN;优先级依次降低)
2. 如果没有SPN文件,那么就显示Registered plmn
3. 若有SPN,注册的plmn是HPLMN或者注册的plmn在SIM卡文件EF_SPDI中,那么
(1) 如果有SPN就要显示SPN
(2) 如果SPN的bit1 = 1, 则需要同时显示Registered plmn,如果SPN的bit1=0,则不需要同时显示Registered plmn
4. 若有SPN,注册的plmn是Roaming plmn且注册的plmn也不在SIM卡文件EF_SPDI中,那么
(1) 显示Registered plmn
(2) 如果SPN的bit2=0,则需要同时显示SPN,如果SPN的bit2=1,则不需要同时显示SPN
其中客户可以客制化的部分是Spn-conf.xml/Virtual-spn-conf-by-***.xml;换句话说,如果你修改了相关xml没有生效,应该是按照spec显示了更高优先级的名字(EONS, CPHS, NITZ…)
如果按照spec显示了更高优先级的名字,而不是xml配置的,那么想要显示xml的名字必然要修改code flow而导致破坏spec定义的rule(由于这是spec定义的通用rule,所以SIM卡在实做时也需要follow spec rule)------这样的客制化很可能会导致CTA/FTA等测试fail,且遵循spec的SIM卡显示也会出问题;建议跟客户说明这部分是有spec规定的,不要进行除xml的客制化
二:遇到问题时的处理方式
如果有些Operator不follow GSM Spec,而定义自己的rule,请按照如下方式处理:
(1)如果operator有出正式spec,请提供详细的技术说明文档;
(2)把此卡在同一时间同一地点(确保网络状况相同)放到Samsung,HTC等对比机中复现问题,提供对比机表现
(3)将此卡放到MTK手机中复现问题并提供复现问题的开机mobile log
MTK Operator name display在手机中分成两种类型:
1. Sim卡名称:
根据开机从SIM卡中读取的IMSI去到Spn-conf.xml中(如果是MVNO的卡则是Virtual-spn-conf-by-***.xml中)匹配得到的name,会保存在SIMInfo这个database中,后续sim卡的名称就从此database中取得
关于MVNO可以参考如下FAQ:
ID: FAQ09811
[NW]如何区分MNO和MVNO
使用场景:
Setting下SimMangement中SIMInfo等
2. 注册上的网络的名称:
这部分显示所用string的主要来源有如下这些,且他们之间最终显示哪个source的string是根据网络和这些source的内容所最终确定的rule决定的(如当前是否roaming,当前注册的plmn是否在EF_SPDI中,EF_SPN中有相关flag标识要不要显示spn…)
关于rule:
请参考Gsm sec 51.011 EF_SPN的部分还有cphs spec;
code的部分,请参考SIMRecords. getDisplayRule和GsmServiceStateTracker. updateSpnDisplay:
(1) Sim卡中文件,如EF_SPN, EF_OPN, EF_SOPN, EF_OPL, EF_PNN, EF_SPDI…
(2) 注册到的网络的plmn,对应Spn-conf.xml
(3) NITZ,即网络下发的名字
Spec 51.011中EF_SPN定义的rule 总结就是:
1. 名称分为 SPN 和 Registered plmn(包括EONS, CPHS (即ONS), S-CPHS, NITZ, PLMN;优先级依次降低)
2. 如果没有SPN文件,那么就显示Registered plmn
3. 若有SPN,注册的plmn是HPLMN或者注册的plmn在SIM卡文件EF_SPDI中,那么
(1) 如果有SPN就要显示SPN
(2) 如果SPN的bit1 = 1, 则需要同时显示Registered plmn,如果SPN的bit1=0,则不需要同时显示Registered plmn
4. 若有SPN,注册的plmn是Roaming plmn且注册的plmn也不在SIM卡文件EF_SPDI中,那么
(1) 显示Registered plmn
(2) 如果SPN的bit2=0,则需要同时显示SPN,如果SPN的bit2=1,则不需要同时显示SPN
其中客户可以客制化的部分是Spn-conf.xml/Virtual-spn-conf-by-***.xml;换句话说,如果你修改了相关xml没有生效,应该是按照spec显示了更高优先级的名字(EONS, CPHS, NITZ…)
如果按照spec显示了更高优先级的名字,而不是xml配置的,那么想要显示xml的名字必然要修改code flow而导致破坏spec定义的rule(由于这是spec定义的通用rule,所以SIM卡在实做时也需要follow spec rule)------这样的客制化很可能会导致CTA/FTA等测试fail,且遵循spec的SIM卡显示也会出问题;建议跟客户说明这部分是有spec规定的,不要进行除xml的客制化
二:遇到问题时的处理方式
如果有些Operator不follow GSM Spec,而定义自己的rule,请按照如下方式处理:
(1)如果operator有出正式spec,请提供详细的技术说明文档;
(2)把此卡在同一时间同一地点(确保网络状况相同)放到Samsung,HTC等对比机中复现问题,提供对比机表现
(3)将此卡放到MTK手机中复现问题并提供复现问题的开机mobile log
android 网络运营商名称显示规则(锁屏界面,下拉列表)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。