CellSignalStrengthLte在toString()中显示的值与getter

时间:2016-05-19 15:35:32

标签: android network-programming telephony telephonymanager lte

CellSignalStrengthLte类似乎返回了一些没有关联getter的toString()值。

以下是toString()的示例:

CellSignalStrengthLte: ss=12 rsrp=-114 rsrq=-11 rssnr=2147483647 cqi=2147483647 ta=2147483647

该课程有4个获取者:getAsuLevel()getDbm()getLevel()getTimingAdvance()以下是这些值返回的示例:

dbm: -114
asuLvl: 26
lvl: 2
timing adv: 2147483647

我们可以看到dbmrsrp中的toString()匹配。并且timingAdvanceta匹配。但是其他任何值都不匹配使用toString()

打印的任何内容

我的问题是如何访问由ss返回的其他值(rsrqrssnrtoString()}我当然可以从中获取值toString()并解析它以获取我感兴趣的值,但这似乎是倒退。由于toString()是一个表示对象的字符串,因此必须有一些其他方法可以从对象访问这些值。

1 个答案:

答案 0 :(得分:1)

不幸的是,在CellSignalStrengthLte中,为了获取这些额外字段,您必须解析toString()或使用反射直接访问字段。对于生产应用程序,建议不采用这两种方式。

但是,您可以获取PhoneStateListener.onSignalStrengthsChanged(SignalStrength)的更新以获取这些值。这样,您就可以使用公共API来获取信号信息。