当前位置: 首页 > news >正文

Android 15 获取网络切片信息的标准接口

相关术语

简称 全称 中文 说明
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 接口介绍
TelephonyManager.java getNetworkSlicingConfiguration 接口介绍
//TelephonyManager.java getNetworkSlicingConfiguration()
ITelephony telephony = getITelephony();
telephony.getSlicingConfig(new ResultReceiver(null)
TelephonyManager.java getNetworkSlicingConfiguration()
TelephonyManager.java getNetworkSlicingConfiguration() 接口实现

ITelephony

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

defination of getSlicingConfig in frameworks
defination of getSlicingConfig in frameworks

ITelephony接口备注
ITelephony接口

ITelephony.aidl getSlicingConfig 接口定义
ITelephony.aidl getSlicingConfig 接口定义

PhoneInterfaceManager

类的初始化

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

packages/services/Telephony/src/com/android/phone/PhoneInterfaceManager.java
PhoneInterfaceManager.java

/**
 * 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

相关文章:

  • 《C语言中的ASCII码表:解锁字符与数字的桥梁》
  • Netty基础—Netty实现消息推送服务
  • go语言中数组、map和切片的异同
  • Mobile-Agent-V:通过视频引导的多智体协作学习移动设备操作
  • PCDN 在去中心化互联网中的角色
  • 个人.clang-format配置,适合Linux C/C++
  • 韩顺平教育-家居网购
  • 搜广推校招面经五十四
  • 【从0到1学Redis】Redis基础篇
  • 生信分析服务作图TCGA/GEO数据库挖掘细胞测序转录学代做指导辅导
  • 靶场(十三)---小白心得思路分享---Levram
  • 基于Netty实现高性能HTTP反向代理
  • Python-素数
  • 提示词prompt如何写
  • 前端项目打包构建优化
  • 苍穹外卖-阿里云OSS使用
  • jasypt-spring-boot-starter项目如何使用jasypt加密密码
  • Unity 接入抖音小游戏
  • HTML中required与aria required区别
  • 一条SQL在mysql数据库中经历的过程
  • 李强签署国务院令,公布修订后的《中华人民共和国植物新品种保护条例》
  • 首部关于民营经济发展的基础性法律,有何亮点?专家解读
  • 金融监管总局修订发布《行政处罚办法》,7月1日起施行
  • 4月译著联合书单|心爱之物:热爱如何联结并塑造我们
  • 零食连锁鸣鸣很忙递表港交所:去年营收393亿元,门店超1.4万家,净利润率2.1%
  • 78家公募年度业绩比拼:23家营收净利双升,十强座次微调