[FAQ08919][NW]网络运营商名称显示规则(锁屏界面,下拉列表)---网络名称 客制化方法 和 问题处理flow
2017-08-31 11:54
411 查看
[DESCRIPTION]
Android系统中 网络运营商名称显示 原理是什么,如果遇到显示不符合需求的问题该如何处理
[SOLUTION]
一:Background & 相关flow
MTK Operator name display在手机中分成两种类型:
1. Sim卡名称:
根据开机从SIM卡中读取的EF_SPN文件的内容(如果EF_SPN为空,则看EF_SPN_CPHS/EF_SPN_SHORT_CPHS)来设定,如果都为空,则设定默认名字CARD01/CARD02(L0上是SUB01/SUB02) ;然后会保存在SIMInfo这个database中,后续sim卡的名称就从此database中取得
(L之前的版本:
根据开机从SIM卡中读取的IMSI去到Spn-conf.xml中(如果是MVNO的卡则是Virtual-spn-conf-by-***.xml中)匹配得到的name来设定)
关于MVNO可以参考如下FAQ:
ID: FAQ09811
[NW]如何区分MNO和MVNO
使用场景:
Setting下SIM cards中SIM cards(L之前的版本: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
flow chart如下:
上图中的PLMN的取值如下:
使用场景:
Keyguard,Notification list,...
其中客户可以客制化的部分是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
注意事项说明:
注册上的网络名称显示跟 “运营商的网络”和“SIM卡中文件”状况都有关,而这些信息都在开机的mobile log中,所以如果遇到 网络名称显示问题请务必提供“开机的mobile log”
关于运营商名称显示 涉及到的 相关源的detail介绍,请参考:
ID: FAQ09394
[NW]网络运营商名称显示&SIM名称显示
关于运营商名称显示 支持多语言,请参考:
ID: FAQ09809
[NW]运营商名称支持多语言
关于锁屏界面operator name显示 全大写 的解决方案,请参考:
ID: FAQ10470
锁屏界面运营商名称显示全大写
Android系统中 网络运营商名称显示 原理是什么,如果遇到显示不符合需求的问题该如何处理
[SOLUTION]
一:Background & 相关flow
MTK Operator name display在手机中分成两种类型:
1. Sim卡名称:
根据开机从SIM卡中读取的EF_SPN文件的内容(如果EF_SPN为空,则看EF_SPN_CPHS/EF_SPN_SHORT_CPHS)来设定,如果都为空,则设定默认名字CARD01/CARD02(L0上是SUB01/SUB02) ;然后会保存在SIMInfo这个database中,后续sim卡的名称就从此database中取得
(L之前的版本:
根据开机从SIM卡中读取的IMSI去到Spn-conf.xml中(如果是MVNO的卡则是Virtual-spn-conf-by-***.xml中)匹配得到的name来设定)
关于MVNO可以参考如下FAQ:
ID: FAQ09811
[NW]如何区分MNO和MVNO
使用场景:
Setting下SIM cards中SIM cards(L之前的版本: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
flow chart如下:
上图中的PLMN的取值如下:
使用场景:
Keyguard,Notification list,...
其中客户可以客制化的部分是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
注意事项说明:
注册上的网络名称显示跟 “运营商的网络”和“SIM卡中文件”状况都有关,而这些信息都在开机的mobile log中,所以如果遇到 网络名称显示问题请务必提供“开机的mobile log”
关于运营商名称显示 涉及到的 相关源的detail介绍,请参考:
ID: FAQ09394
[NW]网络运营商名称显示&SIM名称显示
关于运营商名称显示 支持多语言,请参考:
ID: FAQ09809
[NW]运营商名称支持多语言
关于锁屏界面operator name显示 全大写 的解决方案,请参考:
ID: FAQ10470
锁屏界面运营商名称显示全大写
相关文章推荐
- android 网络运营商名称显示规则(锁屏界面,下拉列表)
- [FAQ10470]锁屏界面运营商名称显示全大写
- android 网络运营商的名字显示规则(锁定屏幕,下拉列表)
- [FAQ09394][NW]网络运营商名称显示&SIM名称显示
- 固定宽度下拉列表中option内容显示不全问题解决方法
- 固定宽度下拉列表中option内容显示不全问题解决方法
- 固定宽度下拉列表中option内容显示不全问题解决方法
- 固定宽度下拉列表中option内容显示不全问题解决方法
- 固定宽度下拉列表中option内容显示不全问题解决方法
- 固定宽度下拉列表中option内容显示不全问题解决方法
- RadComboBox 的 Virtualization 方式,解决数据过多,下拉列表显示缓慢问题。
- 屏幕右下角网络连接图标不显示的处理方法
- UITableView 显示大量网络数据时怎样处理反应过慢的方法
- JS窗口问题处理:使弹出窗口保持前端显示的几种方法,及window窗体对象open()和showModalDialog()用法
- EXT下拉列表中无法显示数据问题 ext undefined为空或不是对象
- .net 4.0发布后不能正常显示图片问题,将iis应用程序池设置成4.0版本,报告错误:处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
- 在做CRM界面的时候遇到的DIV滚动条自动显示的问题!!和解决方法!
- 无法显示XML页名称以无效字符开头处理资源'http://xx'时出错的解决方法
- Asp.Net 连接Oracle数据库 出现"找到 Oracle 客户端和网络组件" 的解决方法!(在win2003 ntfs 下IIS发布只显示登陆界面 不进入系统解决办法)
- xml Dom parser 读路径显示图片时应注意的问题以及firefox对空格、换行节点的处理方法