Android U 配置 WiFiCalling 场景下PLMN/SPN 显示的代码逻辑介绍
【笔记】Android Telephony 漫游SPN显示定制(Roaming Alpha Tag)
frameworks/base/telephony/java/android/telephony/CarrierConfigManager.java
漫游情况一般分为国内漫游和国际漫游(),一般国内漫游认为在国内,国际漫游在国外。
不清楚漫游到国内外的情况时,可以通过底层上报获取状态,接口getDataRoamingType()
ROAMING_TYPE_ | num | Function |
---|---|---|
ROAMING_TYPE_NOT_ROAMING | 0 | 本地网络home |
ROAMING_TYPE_UNKNOWN | 1 | 漫游但不能判断类型 domestic or international. |
ROAMING_TYPE_DOMESTIC | 2 | 国内漫游 domestic |
ROAMING_TYPE_INTERNATIONAL | 3 | 国际漫游 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
- */
- @SystemApi
- public static final int ROAMING_TYPE_NOT_ROAMING = 0;
- /**
- * registered in a roaming network, but can not tell if it's domestic or international.
- * @hide
- */
- @SystemApi
- public static final int ROAMING_TYPE_UNKNOWN = 1;
- /**
- * registered in a domestic roaming network
- * @hide
- */
- @SystemApi
- public static final int ROAMING_TYPE_DOMESTIC = 2;
- /**
- * registered in an international roaming network
- * @hide
- */
- @SystemApi
- public static final int ROAMING_TYPE_INTERNATIONAL = 3;
比如针对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">UScellularstring>
- <boolean name="carrier_name_override_bool" value="true"/>
-
- <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>