4

getGsmSignalStrength() の対応する dBm 値によると、スケールは線形に見えます。(ここでdBm 値を参照してください)。しかし、ほとんどすべてのアプリケーションで、このスケールが線形スケールとして使用されていないことに気付きました。

たとえば、Android の src StatusBarPolicy::updateSignalStrength を考えてみましょう

signal strength = 0 or 99 -> no signal
signal strength >= 12 -> very good signal
signal strength >= 8 -> good signal
signal strength >= 5 -> poor signal
signal strength <5 -> very poor signal

信号強度をパーセンテージで表示できるスケールを見つけるのを手伝ってくれる人はいますか?

4

2 に答える 2

5

あなたが提供したリンクから:

0-113dBm以下
1-111dBm
2 ... 30 -109 ... -53 dBm 31-51dBm
以上

99不明または検出不可

これは、範囲が-113〜-51、または-62dBmであることを意味します。これをパーセンテージに変換するには、受け取った値(0〜31,99)を取得し、対応するdBmを計算してから、-113との差を求め、62で除算します。

たとえば、0=-113dBmです。-113=0との差。0/62= 0%。1=-111dBm。-113 =2との差。2/62〜3%。30=-53dBm。-113との差=60。60/62〜97%。

必要な唯一の特殊なケースは99の場合で、0のように処理する必要があります。

于 2011-10-16T13:03:43.820 に答える