android - 如何通过编程获取手机的物理信道配置
问题描述
我想在 5G NSA 中获得主服务小区和辅助服务小区的 PCI,但似乎我无法使用 getAllCellInfo() 获得我想要的东西。看来我需要解析物理通道配置如下:
{{mConnectionStatus=PrimaryServing,...,mRat=LTE,...,mPhysicalCellId=123},
{mConnectionStatus=SecondaryServing,...,mRat=NR,...}
有谁知道如何获得(实时)配置?或者我可以通过其他方式获得 PCI 吗?非常感谢!
解决方案
关于 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。
推荐阅读
- angular - 如何在 azure msal 中添加忘记密码和更改电话号码的自定义策略?
- javascript - 如何检查或避免 ERR_TIMED_OUT 错误?
- flow - 如何在红绿灯路口加装探测器?
- google-cloud-platform - 浏览器中的 javascript 如何打开与 GCP 负载均衡器后面特定后端的 socket.io 连接?
- azure-data-factory - Azure 数据工厂复制活动中的动态源
- azure-active-directory - 带有图形 API 的 Sharepoint WebPart
- python - 熊猫数据框中的多个日期格式为单个日期模式
- php - 如何将 pdo_sqlsrv 代码转换为 pdo_odbc?
- indoor-positioning-system - 定位系统的精度在哪些条件下可以推断精度?
- vue.js - 如何在 Vue 3 中将 Vue.extend 替换为构造函数