一: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

     

android 网络运营商的名字显示规则(锁定屏幕,下拉列表)的更多相关文章

  1. 网络运营商名称显示&SIM名称显示

    一 网络名称显示这部分比較复杂.Spec对这也有明白的规定,依据其优先级由高往低介绍(其优先级參考TS 22.101), 1.       Enhanced Operator Name String. ...

  2. Android Recovery的汉化 显示中文

    Android Recovery的汉化 显示中文,有需要的朋友可以参考下. 首先下载开源的recovery源码,地址为https://github.com/xiaolu/android_bootabl ...

  3. iPhone使用CoreTelephony获得SIM卡网络运营商资讯和通话资料

    注意要加头文件目录 /System/Library/Frameworks/CoreTelephony.framework/Headers 到 build 设置 Header Search Paths, ...

  4. 聊天IM的时间戳显示规则

    ====================================================== 以下规则是在体验微信操作后,推测出来的规则,可能存在一些不准确的表述 ========== ...

  5. Wireshark技巧-过滤规则和显示规则

    Wireshark是一个强大的网络协议分析软件,最重要的它是免费软件. 过滤规则 只抓取符合条件的包,在Wireshark通过winpacp抓包时可以过滤掉不符合条件的包,提高我们的分析效率. 如果要 ...

  6. 设置Android默认锁定屏幕旋转

    /********************************************************************************** * 设置Android默认锁定屏 ...

  7. 从零开始学android开发- 应用程序窗体显示状态操作requestWindowFeature

    我们在开发程序是经常会需要软件全屏显示.自定义标题(使用按钮等控件)和其他的需求,今天这一讲就是如何控制Android应用程序的窗体显示. 首先介绍一个重要方法那就是requestWindowFeat ...

  8. Android上使用OpenGLES2.0显示YUV数据

    在Android上用OpenGLES来显示YUV图像,之所以这样做,是因为: 1.Android本身也不能直接显示YUV图像,YUV转成RGB还是必要的: 2.YUV手动转RGB会占用大量的CPU资源 ...

  9. Android窗口管理服务WindowManagerService显示窗口动画的原理分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8611754 在前一文中,我们分析了Activi ...

随机推荐

  1. Java排序算法(四):Shell排序

    [基本的想法] 将原本有大量记录数的记录进行分组.切割成若干个子序列,此时每一个子序列待排序的记录个数就比較少了,然后在这些子序列内分别进行直接插入排序,当整个序列都基本有序时.再对全体记录进行一次直 ...

  2. Android自己定义控件——3D画廊和图像矩阵

    转载请注明出处:http://blog.csdn.net/allen315410/article/details/39932689 1.3D画廊的实现 我们知道android系统已经为我们提供好了一个 ...

  3. WM_NCHITTEST有21种取值,常用的有HTCAPTION,HTCLIENT,HTBORDER,HTSYSMENU,HTTRANSPARENT,罗列所有VCL里对其使用的情况

    我为了移动一个无标题栏的窗体,使用了WM_NCHITTEST消息,这个消息大概如下: 通常,我们拖动对话框窗口的标题栏来移动窗口,但有时候,我们想通过鼠标在客户区上拖动来移动窗口. 一个容易想到的方案 ...

  4. PHP 报告分拣和生产理念

    原则排序报告 见一宝.一只猫的排序,我想照猫画虎,鼓捣自己一个. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3VqaWFuZ3dlaTU2Nw==/f ...

  5. 检查Linux Bash安全漏洞以及各环境修复解决方法

    第一.检测是否存在Bash漏洞$env x='() { :;}; echo vulnerable' bash -c "echo this is a test"如果返回以下内容:则请 ...

  6. SynchronousQueue、LinkedBlockingQueue、ArrayBlockingQueue性能测试

    SynchronousQueue.LinkedBlockingQueue.ArrayBlockingQueue性能测试 JDK6对SynchronousQueue做了性能优化,避免对竞争资源加锁,所以 ...

  7. ArrayBlockingQueue和LinkedBlockingQueue的区别

    ArrayBlockingQueue和LinkedBlockingQueue的区别,得出结论如下: 1. 队列中锁的实现不同 ArrayBlockingQueue实现的队列中的锁是没有分离的,即生产和 ...

  8. hdu 4740【模拟+深搜】.cpp

    题意: 给出老虎的起始点.方向和驴的起始点.方向.. 规定老虎和驴都不会走自己走过的方格,并且当没路走的时候,驴会右转,老虎会左转.. 当转了一次还没路走就会停下来.. 问他们有没有可能在某一格相遇. ...

  9. 什么是gulp?

    gulp初涉 1.什么是gulp? gulp是前端开发过程中一种基于流的代码构建工具,是自动化项目的构建利器:它不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成:使用 ...

  10. hdu3555(数位dp)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=3555 题意:求区间[a,b]内包含有'49'的数的总个数. 分析:dp[pos][0]表示到第pos位 ...