Android:为什么获得相邻小区信号强度的方法比当前小区信号强度更好?

Dou*_*ghy 5 android rssi

我正在编写一个收集细胞信号强度的android应用程序.我无法获得"当前"小区信号强度,但我没有任何问题获得"相邻"小区信号强度.

为了获得当前的单元信号强度,我创建了一个PhoneStateListener并实现了onSignalStrengthChanged回调.它有效,但不是很好.似乎信号强度几乎没有变化,分辨率只会跳到几个数字.我会接受信号强度硬件的分辨率很粗的答案,但是当我使用TelephonyManager的getNeighboringCellInfo()方法时,它的效果要好得多.来自相邻小区的信号强度读数经常变化,并且它们具有更好的分辨率.

那么,我怎样才能获得当前的细胞信号强度,就像我获得相邻细胞强度一样?对我来说,相邻单元的功能优于当前单元似乎很奇怪.我在这里错过了什么吗?

我还想直接从电话管理器调用一个方法来获取当前的单元格强度,而不是监听器,如果可能的话.如果有人知道如何,请告诉我.谢谢.

cem*_*ent 8

基于Android 1.5源(BatteryStatsImpl.java)仅在以下状态之间发生信号更改时才会发送通知:

SIGNAL_STRENGTH_NONE_OR_UNKNOWN (99)
SIGNAL_STRENGTH_GREAT (16-32)
SIGNAL_STRENGTH_GOOD (8-15)
SIGNAL_STRENGTH_MODERATE (4-7)
SIGNAL_STRENGTH_POOR (0-3)
Run Code Online (Sandbox Code Playgroud)

因此,在您的情况下,信号强度会在相同范围内变化,并且您不会收到通知.

我想这样做是为了节省电池寿命.