0

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

这是一个例子toString()

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

该类有 4 个 getter:getAsuLevel(), getDbm(), getLevel(),getTimingAdvance()以下是这些值返回的示例:

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

我们可以dbmrsrp. toString()timingAdvanceta. 但是没有其他值与打印的任何值匹配toString()

我的问题是如何访问由我返回的其他值( ss, rsrq,特别是)我当然可以从 toString() 获取值并解析它以获取我感兴趣的值,但这似乎是倒退的。因为 toString() 是一个代表对象的字符串,所以肯定有其他方法可以从对象中访问这些值。rssnrtoString()

4

1 回答 1

1

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

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

于 2016-05-23T21:00:23.900 回答