在屈臣氏做网站运营,个人网站建设方案策划,做空比特币网站,wordpress添加音乐播放器一、SPN模块简介
【笔记】SPN和PLMN 运营商网络名称显示
Android U 配置 WiFiCalling 场景下PLMN/SPN 显示的代码逻辑介绍
【笔记】Android Telephony 漫游SPN显示定制#xff08;Roaming Alpha Tag#xff09; 二、相关配置字段
non_roaming_operator_string_array 是否…一、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_OPLplmn1,lactac_start,lactac_end,indexpnn_override_string_array 覆写卡文件EF_PNNalpha_long1,alpha_short1
CarrierConfigManager 定义
frameworks/base/telephony/java/android/telephony/CarrierConfigManager.java 【定义】CarrierConfig-non_roaming_operator_string_array 【定义】CarrierConfig-spn_display_condition_override_int 【定义】CarrierConfig - opl_override_opl_string_array 【定义】CarrierConfig - pnn_override_string_array 三、需求场景及功能代码
漫游场景
漫游情况一般分为国内漫游和国际漫游一般国内漫游认为在国内国际漫游在国外。
不清楚漫游到国内外的情况时可以通过底层上报获取状态接口getDataRoamingType()
frameworks/base/telephony/java/android/telephony/ServiceState.java (androidxref.cn android-14.0.0_r18)
frameworks 【API】getDataRoamingType 漫游状态字段
Roming Type 定义及映射关系 ROAMING_TYPE_numFunctionROAMING_TYPE_NOT_ROAMING0本地网络homeROAMING_TYPE_UNKNOWN1漫游但不能判断类型 domestic or international.ROAMING_TYPE_DOMESTIC2国内漫游 domesticROAMING_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 its 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;
四、开发方案
将non_roaming_operator_string_array配置成false则指定漫游到的mccmnc会视为home网不会显示plmn以spn为准。carrier_name_string和carrier_name_override_bool 配套配置实现overlay对于漫游时定制OPLopl_override_opl_string_array
比如针对cid1952的卡原始配置packages/apps/CarrierConfig/assets/carrier_config_carrierid_1952_US-Cellular.xml 定制配置如下/packages/apps/CarrierConfig/res/xml/vendor.xml carrier_config cid1952 nameU.S. Cellularstring namecarrier_name_stringUScellular/stringboolean namecarrier_name_override_bool valuetrue/!--plmn1,lactac_start,lactac_end,index--string-array nameopl_override_opl_string_array num24item value311580,0,65535,0 /item value311581,0,65535,0 /carrier_name_stringitem value311582,0,65535,0 /item value311583,0,65535,0 /item value311584,0,65535,0 /item value311585,0,65535,0 /item value311586,0,65535,0 /item value311587,0,65535,0 /item value311588,0,65535,0 /item value311589,0,65535,0 /item value311220,0,65535,0 /item value311221,0,65535,0 /item value311222,0,65535,0 /item value311223,0,65535,0 /item value311224,0,65535,0 /item value311225,0,65535,0 /item value311226,0,65535,0 /item value311227,0,65535,0 /item value311228,0,65535,0 /item value311229,0,65535,0 /item value310120,0,65535,0 /item value312420,0,65535,0 /item value311480,0,65535,0 /item value310410,0,65535,0 //string-arraystring-array namepnn_override_string_array num1item valueUScelluar //string-array/carrier_config