【笔记】Android 漫游定制SPN定制有关字段

一、SPN模块简介

【笔记】SPN和PLMN 运营商网络名称显示

Android U 配置 WiFiCalling 场景下PLMN/SPN 显示的代码逻辑介绍

【笔记】Android Telephony 漫游SPN显示定制(Roaming Alpha Tag)

二、相关配置字段

  • non_roaming_operator_string_array 是否视为非漫游
  • spn_display_condition_override_int 
  • opl_override_opl_string_array 覆写卡文件EF_OPL("plmn1,lactac_start,lactac_end,index")
  • pnn_override_string_array 覆写卡文件EF_PNN("alpha_long1,alpha_short1")

CarrierConfigManager 定义

frameworks/base/telephony/java/android/telephony/CarrierConfigManager.java

CarrierConfig-non_roaming_operator_string_array
【定义】CarrierConfig-non_roaming_operator_string_array​​​​​
CarrierConfig-spn_display_condition_override_int
【定义】CarrierConfig-spn_display_condition_override_int
【定义】CarrierConfig - opl_override_opl_string_array
【定义】CarrierConfig - opl_override_opl_string_array
【定义】CarrierConfig - pnn_override_string_array
【定义】CarrierConfig - pnn_override_string_array

三、需求场景及功能代码

漫游场景

漫游情况一般分为国内漫游和国际漫游(),一般国内漫游认为在国内,国际漫游在国外。

不清楚漫游到国内外的情况时,可以通过底层上报获取状态,接口getDataRoamingType()

frameworks/base/telephony/java/android/telephony/ServiceState.java (androidxref.cn android-14.0.0_r18)

frameworks

【代码】接口getDataRoamingType
【API】getDataRoamingType

漫游状态字段

Roming Type 定义及映射关系
ROAMING_TYPE_numFunction
ROAMING_TYPE_NOT_ROAMING0本地网络home
ROAMING_TYPE_UNKNOWN1漫游但不能判断类型 domestic or international.
ROAMING_TYPE_DOMESTIC2国内漫游 domestic
ROAMING_TYPE_INTERNATIONAL3国际漫游  international
    //@Retention注解标记了该注解的保留策略,即 SOURCE。//编译器在编译过程中会忽略@Retention注解,即编译后的代码中不会出现Retention。//@Retention注解的作用是为了给静态分析工具提供元数据。//@IntDef一个定义在 Android SDK 中的注解,用于告诉静态分析工具这个枚举类型 RoamingType 的取值范围,它包括一个 prefix 和一个 value。其中,prefix 参数指定了枚举值的前缀,这是为了避免与其他枚举类型的取值冲突;value 参数指定了枚举类型的所有可能取值。/** @hide */@Retention(RetentionPolicy.SOURCE) @IntDef(prefix = { "ROAMING_TYPE_" }, value = {ROAMING_TYPE_NOT_ROAMING,ROAMING_TYPE_UNKNOWN,ROAMING_TYPE_DOMESTIC,ROAMING_TYPE_INTERNATIONAL})//定义了一个注解类型 RoamingType,它实际上是一个注解类的声明。//作用:可以在其他代码中使用该注解来表示 RoamingType 类型的值。public @interface RoamingType {}/*** Not roaming, registered in home network.* @hide*/@SystemApipublic static final int ROAMING_TYPE_NOT_ROAMING = 0;/*** registered in a roaming network, but can not tell if it's domestic or international.* @hide*/@SystemApipublic static final int ROAMING_TYPE_UNKNOWN = 1;/*** registered in a domestic roaming network* @hide*/@SystemApipublic static final int ROAMING_TYPE_DOMESTIC = 2;/*** registered in an international roaming network* @hide*/@SystemApipublic static final int ROAMING_TYPE_INTERNATIONAL = 3;

四、开发方案

  1. 将non_roaming_operator_string_array配置成false,则指定漫游到的mccmnc会视为home网,不会显示plmn,以spn为准。
  2. carrier_name_string和carrier_name_override_bool 配套配置实现overlay
  3. 对于漫游时,定制OPL(opl_override_opl_string_array)

比如针对cid=1952的卡,原始配置:packages/apps/CarrierConfig/assets/carrier_config_carrierid_1952_US-Cellular.xml

定制配置如下:/packages/apps/CarrierConfig/res/xml/vendor.xml

    <carrier_config cid="1952" name="U.S. Cellular"><string name="carrier_name_string">UScellular</string><boolean name="carrier_name_override_bool" value="true"/><!--plmn1,lactac_start,lactac_end,index"--><string-array name="opl_override_opl_string_array" num="24"><item value="311580,0,65535,0" /><item value="311581,0,65535,0" /><item value="311582,0,65535,0" /><item value="311583,0,65535,0" /><item value="311584,0,65535,0" /><item value="311585,0,65535,0" /><item value="311586,0,65535,0" /><item value="311587,0,65535,0" /><item value="311588,0,65535,0" /><item value="311589,0,65535,0" /><item value="311220,0,65535,0" /><item value="311221,0,65535,0" /><item value="311222,0,65535,0" /><item value="311223,0,65535,0" /><item value="311224,0,65535,0" /><item value="311225,0,65535,0" /><item value="311226,0,65535,0" /><item value="311227,0,65535,0" /><item value="311228,0,65535,0" /><item value="311229,0,65535,0" /><item value="310120,0,65535,0" /><item value="312420,0,65535,0" /><item value="311480,0,65535,0" /><item value="310410,0,65535,0" /></string-array><string-array name="pnn_override_string_array" num="1"><item value="UScelluar" /></string-array></carrier_config>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/513111.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RHCSA练习2

一、实验题目 1、文件查找 &#xff08;1&#xff09;在当前目录及子目录中&#xff0c;查找小写字母开头的txt文件 [rootroot ~]# cd /etc [rootroot etc]# find . -type f -name [a-z]*.txt &#xff08;2&#xff09;在/etc及其子目录中&#xff0c;查找host开头的文件 …

2024年最新appstore公司账号申请

首先申请一个邮箱、然后打开Sign In - Apple 进行邮箱appID 注册、等appID注册成功以后、会下一步提示你进行账号申请:此时 有个需要注意的问题是:这块的信息必须填写真实的姓名、后续上传资料的时候会与这块进行匹配,不一致会导致很多问题。 就会出现上述图,让你去下载这…

针对有容量的电动汽车路由问题的灵活交叉的修正遗传算法

英文&#xff1a;Modified Genetic Algorithm with Flexible Crossover for The Capacitated Electric Vehicle Routing Problem 摘要 本文提出了一种对遗传算法的修改&#xff0c;用一种叫做灵活交叉操作的新技术来解决有容量的电动汽车路由问题&#xff08;CEVRP&#xff0…

链表哨兵例子

哨兵链表例子_根据值删除链表 package linklist;public class leetcode203 {public static void main(String[] args) {ListNode listNode new ListNode(1,new ListNode(2,new ListNode(3)));ListNode listNode1 removeElements(listNode,2);System.out.println(listNode1);…

【Python 识别某滑块的距离】今天来换思维搞滑块,不用识别库,几行代码就能搞定,仅供学习

写作日期&#xff1a;2024.03.05 使用工具&#xff1a;Python 温馨提示&#xff1a;此方法仅对有完整图和缺口图的滑块有效&#xff0c;可精准识别出缺口要滑动的距离 文章全程已做去敏处理&#xff01;&#xff01;&#xff01; 【需要做的可联系我】 AES处理&#xff08;直接…

Kubernetes Service

一、Service&#xff1a;Kubernetes 中的服务返现与负载均衡 1、为什么需要服务发现 Pod 生命周期短暂&#xff0c;IP 地址随时变化。 Deployment 等的 Pod 组需要统一访问入口和做负载均衡。 应用间在不同环境部署时保持同样的部署拓扑和访问方式。 2、应用服务如何暴露到…

MATLAB的基础二维绘图

1.plot函数 &#xff08;1&#xff09;plot函数的基本用法 plot(x,y)其中&#xff0c;x和y分别用于存储x坐标和y坐标数据&#xff0c;通常x和y为长度相同的向量。 例如&#xff1a; x[2.3,3.3,4.3,1];y[1.3,2,1.8,3]plot(x,y) (2)plot(x,y,选项&#xff09;其中选项包括颜色…

【STM32+OPENMV】二维云台颜色识别及追踪

一、准备工作 有关OPENMV最大色块追踪及与STM32通信内容&#xff0c;详情见【STM32HAL】与OpenMV通信 有关七针OLED屏显示内容&#xff0c;详情见【STM32HAL】七针OLED(SSD1306)配置(SPI版) 二、所用工具 1、芯片&#xff1a;STM32F407ZGT6 2、CUBEMX配置软件 3、KEIL5 4…

Lichee Pi 4A:RISC-V架构的开源硬件之旅

一、简介 Lichee Pi 4A是一款基于RISC-V指令集的强大Linux开发板&#xff0c;它凭借出色的性能和丰富的接口&#xff0c;吸引了众多开发者和爱好者的关注。这款开发板不仅适用于学习和研究RISC-V架构&#xff0c;还可以作为软路由、小型服务器或物联网设备的核心组件。 目录 一…

【C++基础】STL容器面试题分享||上篇

&#x1f308;欢迎来到C基础专栏 &#x1f64b;&#x1f3fe;‍♀️作者介绍&#xff1a;前PLA队员 目前是一名普通本科大三的软件工程专业学生 &#x1f30f;IP坐标&#xff1a;湖北武汉 &#x1f349; 目前技术栈&#xff1a;C/C STL 1.请说说 STL 的基本组成部分2.详细的说&…

从事测绘地信,你需要这些插件、软件、小工具、图源...

特别声明&#xff0c;本篇是来自公众号GIS前沿的资源&#xff0c;看着比较好&#xff0c;特别给大家推荐。加粗样式 今天&#xff0c;我们又来汇总了一些工作中实用的插件、小工具、数据等等&#xff0c;小助手又来帮你提高工作效率了****。 因为小助手每年都会总结一次&…

10.WEB渗透测试-Linux基础知识-Linux用户权限管理(下)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;9.WEB渗透测试-Linux基础知识-Linux用户权限管理&#xff08;上&#xff09;-CSDN博客 ch…