You need to enable JavaScript to run this app. 5G NSA下getAllCellInfo()失效时如何编程获取物理信道配置及主辅小区PCI
优惠活动
大模型
产品
解决方案
定价
更多

5G NSA下getAllCellInfo()失效时如何编程获取物理信道配置及主辅小区PCI

5G NSA场景主辅服务小区PCI获取方案

普通应用调用公开的getAllCellInfo()接口无法获取对应数据的核心原因是:Android 10及以上版本出于隐私保护设计,会主动过滤NSA架构下NR辅小区的相关信息,同时很多厂商定制ROM会对接口返回值做二次裁剪,不会暴露带连接状态标记的物理信道原始配置。
你提到的待解析物理信道配置结构,本质是Telephony框架内部的私有返回值,格式如下:

{mConnectionStatus=PrimaryServing,...,mRat=LTE,...,mPhysicalCellId=123},
{mConnectionStatus=SecondaryServing,...,mRat=NR,...}

该结构的实时获取方法

这类带mConnectionStatus、mRat、mPhysicalCellId字段的结构,全部是Telephony模块下标记为@hide的内部类属性,不属于对外公开API,可通过以下方式获取实时值:

  • 反射调用Telephony模块隐藏接口:遍历TelephonyManager的方法列表,定位返回值对象包含上述字段的内部方法,在拿到返回的对象列表后,直接通过字段名匹配提取对应值:筛选mConnectionStatus为PrimaryServing/SecondaryServing的条目,分别匹配对应RAT类型(LTE为主锚点、NR为辅小区),提取对应的mPhysicalCellId值即可得到目标PCI。
  • 适配注意:不同Android版本的内部类名、字段定义存在差异,比如Android 11前后的CellInfoNr、CellInfoLte的内部字段名有版本偏移,部分厂商ROM会对反射调用做权限拦截,需要针对目标机型做兼容逻辑。

其他可获取主辅小区PCI的替代途径

  • 系统级权限读取:如果应用具备系统签名、或被授予READ_PRIVILEGED_PHONE_STATE特权权限,可以直接调用TelephonyManager的私有重载版getAllCellInfo()接口,返回的列表会完整标记每个小区的连接角色、RAT类型、物理小区ID,无需额外解析内部结构。
  • Modem诊断通道读取:通过终端工程模式进入Modem诊断日志通道,读取RRC层的实时测量上报日志,日志中会明确记录NSA架构下主节点(LTE锚点)、辅节点(NR)的配置PCI值,不受应用层API的隐私限制。
  • 终端测量能力对接:对于不具备特权权限的场景,可以对接已有的终端无线测量工具的共享内存接口,读取Modem上报的服务小区测量结果,结果中会区分NSA架构下主、辅服务小区的对应PCI。

注意:无特殊权限的普通第三方应用,在Android 10及以上版本中受隐私规则限制,无法获取到NSA下NR辅小区的PCI信息,所有公开API都会默认屏蔽这类敏感数据。

内容的提问来源于stack exchange,提问作者Jason Lin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.04 19:06:06