运行 Android 10 或更高版本的设备可以支持 5G 非独立组网 (NSA)。5G NSA 是 5G 网络的解决方案,其中网络由现有的 4G 基础设施提供支持。在 Android 10 上,当设备连接到 5G 网络时,设备可以在状态栏上显示 5G 图标。
实现
运营商配置
要配置 5G 图标在状态栏上的显示方式,运营商可以使用 CarrierConfig 中的 KEY_5G_ICON_CONFIGURATION_STRING
键。
以下是 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
系统 UI
要自定义运营商可以用于特定状态的图标,请在 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 图标。