如何将电话信号强度更新到Android中的UI

时间:2014-09-17 07:15:00

标签: android signal-strength

我通过以下帖子来获取android中的信号强度:

How to get cell service signal strength in Android?

我的疑问是:信号强度如何更新到系统UI。强度计中的每个条形表示什么?每个柱子都有一个特定的阈值吗?

2 个答案:

答案 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