搭载 Android 10 或更高版本的设备可支持 5G 非独立组网 (NSA)。5G NSA 是一种 5G 网络解决方案,其网络由现有的 4G 基础架构提供支持。Android 10 设备在连接到 5G 网络后,便可以在状态栏上显示 5G 图标。
实现
运营商配置
运营商可以使用 CarrierConfig
中的 KEY_5G_ICON_CONFIGURATION_STRING
键配置 5G 图标在状态栏上的显示方式。
5G NSA 中存在以下几种场景:
- 设备连接到作为辅助小区的 5G 小区,且使用毫米波。
- 设备连接到作为辅助小区的 5G 小区,但不使用毫米波。
- 设备驻留在具备 5G 能力的网络上(设备不必连接到作为辅助小区的 5G 小区),对 5G 的使用不受限,并且无线资源控制 (RRC) 处于
IDLE
状态(无网络连接)。 - 设备驻留在具备 5G 能力的网络上(设备不必连接到作为辅助小区的 5G 小区),对 5G 的使用不受限,并且无线资源控制 (RRC) 处于
CONNECTED
状态。 - 设备驻留在具备 5G 能力的网络上(设备不必连接到作为辅助小区的 5G 小区),但对 5G 的使用受限。
配置字符串包含由英文逗号分隔的多个键值对。每个键值对的键和值都由英文冒号分隔。配置字符串中的键对应于上述 5G 场景,并且必须是下列其中一项:
connected_mmwave
connected
not_restricted_rrc_idle
not_restricted_rrc_con
restricted
配置字符串中的值必须是与 /packages/SettingsLib/res/
目录中的图标名称匹配的有效图标名称。5G NSA 有两个默认图标:5G
和 5G_PLUS
。
图 1. 默认的 5G 和 5G_PLUS 5G 图标
仅针对场景 1 (connected_mmwave
) 和场景 2 (connected
) 显示 5G 图标,这两种场景中的设备具有真正的 5G 网络连接。对场景 1 使用 5G_PLUS
图标,对场景 2 使用 5G
图标。以下是 CarrierConfig
中的配置字符串的一个示例。
connected_mmwave:5G_PLUS,connected:5G
系统界面
如需自定义运营商可用于特定状态的图标,请在 TelephonyIcons.java
中添加 MobileIconGroup
对象。MobileIconGroup
中的图标名称必须与 CarrierConfig
中使用的图标名称一致。以下示例说明了如何将名为“5G_PLUS”的自定义图标添加到 MobileIconGroup
。
static final MobileIconGroup NR_5G_PLUS = new MobileIconGroup(
"5G_PLUS",
null,
null,
AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH,
0,
0,
0,
0,
AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0],
R.string.data_connection_5g_plus,
TelephonyIcons.ICON_5G_PLUS,
true);
验证
为验证您的实现,请确认当设备连接到 5G 小区时,状态栏上会显示 5G 图标。