扫码关注,一起学习
在这里插入图片描述
android中wifi分为5个等级,对应的图标是0格,1格,2格,3格,4格.

那么对应的信号强度是多少呢?

根据wifimanager中的算法calculateSignalLevel可以算得:

0 rssi<=-100
1 (-100, -88]
2 (-88, -77]
3 (-66, -55]
4 rssi>=-55

下面看谷歌代码实现:
/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/AccessPointControllerImpl.java

public int getIcon(AccessPoint ap) {    int level = ap.getLevel();    return ICONS[level >= 0 ? level : 0];}

frameworks/base/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java

public int getLevel() {     return WifiManager.calculateSignalLevel(mRssi, SIGNAL_LEVELS); }

关键函数:

/frameworks/base/wifi/java/android/net/wifi/WifiManager.java

private static final int MIN_RSSI = -100;private static final int MAX_RSSI = -55;public static final int RSSI_LEVELS = 5;public static int calculateSignalLevel(int rssi, int numLevels) {    if (rssi <= MIN_RSSI) {        return 0;    } else if (rssi >= MAX_RSSI) {        return numLevels - 1;    } else {        float inputRange = (MAX_RSSI - MIN_RSSI);        float outputRange = (numLevels - 1);        return (int)((float)(rssi - MIN_RSSI) * outputRange / inputRange);    }}

更多相关文章

  1. 手机app图标显示为机器人或者不显示的解决办法
  2. 还在为android图标适配烦恼?字体图标你值得拥有
  3. Android实现动态改变app图标的示例代码
  4. Android 传输数据时Base64编码算法详解
  5. Android修改icon和roundIcon后,显示的图标还是默认的图片
  6. Android AES加密算法及其实现
  7. JAVA数据结构及算法--Android中Activity的四种启动模式
  8. Android rom开发:通过拨号使用暗码打开不显示图标的应用
  9. android 获取.thumbnail文件下的小图标

随机推荐

  1. 从Android 开发到Flutter 之 开屏页和广
  2. Android应用实例之----基于BroadCastRece
  3. Android View 高级框架二 Builder模式打
  4. Google:Nexus S 可升級到 Android 4.0 系
  5. Android手机直播(四)Android Media API
  6. [Android]APK程序卸载提示
  7. Android电话系统之概述篇
  8. Qt 5.2正式版发布 全面支持移动平台
  9. Android与.Net交互模拟用户屏幕操作添加A
  10. [置顶] 我的Android进阶之旅------>Andro