我通过以下帖子来获取android中的信号强度:
How to get cell service signal strength in Android?
我的疑问是:信号强度如何更新到系统UI。强度计中的每个条形表示什么?每个柱子都有一个特定的阈值吗?
答案 0 :(得分:2)
信号强度图标由SystemUI控制。它可能在其他Android版本中有所不同,但在KitKat中,NetworkController.java
类处理显示的图标。 SignalStrength.java
是返回NetworkController.java
当前信号强度的类。信号强度表示为0(无信号)和4(大信号)之间的数字。实际信号以dBm为单位测量,并从Android框架的(低级)radio interface layer (RIL)作为Parcel传递到SignalStrength.java
类。所使用的不同无线电技术之间的实际阈值不同。
答案 1 :(得分:0)
getGsmLevel()
中的SignalStrength.java
功能可以解决问题:
int level;
int asu = getGsmSignalStrength();
if (asu <= 2 || asu == 99) level = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
else if (asu >= 12) level = SIGNAL_STRENGTH_GREAT;
else if (asu >= 8) level = SIGNAL_STRENGTH_GOOD;
else if (asu >= 5) level = SIGNAL_STRENGTH_MODERATE;
else level = SIGNAL_STRENGTH_POOR;
此函数返回level