0

CellSignalStrengthLteクラスは、関連付けられたゲッターを持たないtoString()でいくつかの値を返しているようです。ここでCellSignalStrengthLteは、getStringで使用可能な値よりも異なる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 

我々はできますdbmは、toString()rsrpと一致しています。そしてtimingAdvancetaと一致します。しかし、他の値はいずれもtoString()

私の質問は、私はtoString()によって返される他の値(ssrsrqrssnr specicially)にアクセスするか、私はもちろんのtoStringから値を取得することができる方法であると印刷されたものと一致しません()とそれを解析して、私が興味を持っている値を取得しますが、これは後方にあるようです。 toString()はオブジェクトを表す文字列であるため、オブジェクトからこれらの値にアクセスするには別の方法が必要です。

答えて

1

残念ながら、CellSignalStrengthLteでは、これらの余分なフィールドを取得するには、toString()を解析するか、フィールドに直接アクセスするために反射を使用する必要があります。どちらの方法も本番用のアプリにはおすすめできません。

しかし、PhoneStateListener.onSignalStrengthsChanged(SignalStrength)のアップデートを入手してこれらの値を取得することができます。このようにして、パブリックAPIを使用してシグナル情報を取得することができます。

関連する問題