首页 > 解决方案 > 如何通过编程获取手机的物理信道配置

问题描述

我想在 5G NSA 中获得主服务小区和辅助服务小区的 PCI,但似乎我无法使用 getAllCellInfo() 获得我想要的东西。看来我需要解析物理通道配置如下:

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

有谁知道如何获得(实时)配置?或者我可以通过其他方式获得 PCI 吗?非常感谢!

标签: android5g

解决方案


关于 PhysicalChannelConfig

唯一可能的获取方式PhysicalChannelConfig是通过TelephonyManager.registerTelephonyCallback方法。例如,您可以传递TelephonyCallback.PhysicalChannelConfigListener的实例,然后您将开始获得所需的内容。

请注意,Manifest.permission.READ_PRECISE_PHONE_STATE需要权限,因此您的应用需要是运营商特权应用的系统应用。

有一些尝试调整此保护级别,可以在此处查看当前状态。PhysicalChannelConfig但是从 Android 12 开始,如果您是普通开发人员,则无法获得。

关于 PCI

您有时可以通过getAllCellInfo()您提到的方式获得服务 LTE 和 NR NSA 小区的 PCI。有时存在一个CellInfoNr带有 PCI 的实例。此行为是特定于设备的。

一般来说 - Android 不提供您要求的任何官方 API。


推荐阅读