相关术语
简称 | 全称 | 中文 | 说明 |
---|---|---|---|
URSP | UE Route Selection Policy | 用户路由选择策略 | URSP 是 5G 核心网(PCF)下发给 UE 的策略,用于指导应用流量如何路由到不同的网络切片或 PDU 会话。其包含多个规则,每条规则由 优先级、业务描述符(Traffic Descriptor) 和 路由选择描述符(Route Selection Descriptor) 组成 |
NSSAI | Network Slice Selection Assistance Information | 网络切片选择辅助信息 | 每个 S-NSSAI (Single)由 SST(Slice/Service Type) 和可选的 SD(Slice Differentiator) 组成: - SST:1 字节,标识切片类型(如 eMBB、URLLC、mMTC)或自定义类型。 - SD:24 位,用于区分相同 SST 下的不同切片实例。 |
接口介绍
Android 提供通用的标准接口获取网络切片的信息(sliceInfo),公开的API是TelephonyManager.getNetworkSlicingConfiguration()。
调用链
- TelephonyManager:getNetworkSlicingConfiguration()
- ITelephony:getSlicingConfig()
- PhoneInterfaceManager:getSlicingConfig() CMD_GET_SLICING_CONFIG
// TelephonyManager.java
// getNetworkSlicingConfiguration()
ITelephony telephony = getITelephony();
telephony.getSlicingConfig(new ResultReceiver(null)// PhoneInterfaceManager.java - 是ITelephony的实现类
// MainThreadHandler case CMD_GET_SLICING_CONFIG: {
request.phone.getSlicingConfig(onCompleted);
RIL到Modem的调用链:
1. RIL.java: getSlicingConfig()
2. radiodata_service.cpp: getSlicingConfig()
3. RmmDcEventHandler.cpp: getSliceInfo()
4. Modem MIPC: MIPC_NW_GET_NSSAI_REQ/CNF
代码逻辑
TelephonyManager

//TelephonyManager.java getNetworkSlicingConfiguration()
ITelephony telephony = getITelephony();
telephony.getSlicingConfig(new ResultReceiver(null)

ITelephony
frameworks/base/telephony/java/com/android/internal/telephony/ITelephony.aidl



PhoneInterfaceManager
类的初始化
- ITelephony 接口的实现类是 TeleService 中的 PhoneInterfaceManager,其构造方法会创建MainThreadHandler对象,获取网络切片的流程会使用到,而后会详细说明消息请求和处理的协作流程。

/*** Initialize the singleton PhoneInterfaceManager instance.* This is only done once, at startup, from PhoneApp.onCreate().*/
/* package */ static PhoneInterfaceManager init(PhoneGlobals app, FeatureFlags featureFlags) {synchronized (PhoneInterfaceManager.class) {if (sInstance == null) {sInstance = new PhoneInterfaceManager(app, featureFlags);} else {Lo