Tune wifi RSSI code (see bug 5241139).
Bug: 5241139 Change-Id: I3fef432c39f1b33532e48b643bd9268d3df0f864
This commit is contained in:
@@ -95,7 +95,7 @@ public class NetworkController extends BroadcastReceiver {
|
|||||||
final WifiManager mWifiManager;
|
final WifiManager mWifiManager;
|
||||||
AsyncChannel mWifiChannel;
|
AsyncChannel mWifiChannel;
|
||||||
boolean mWifiEnabled, mWifiConnected;
|
boolean mWifiEnabled, mWifiConnected;
|
||||||
int mWifiLevel;
|
int mWifiRssi, mWifiLevel;
|
||||||
String mWifiSsid;
|
String mWifiSsid;
|
||||||
int mWifiIconId = 0;
|
int mWifiIconId = 0;
|
||||||
int mWifiActivityIconId = 0; // overlay arrows for wifi direction
|
int mWifiActivityIconId = 0; // overlay arrows for wifi direction
|
||||||
@@ -654,24 +654,29 @@ public class NetworkController extends BroadcastReceiver {
|
|||||||
mWifiConnected = networkInfo != null && networkInfo.isConnected();
|
mWifiConnected = networkInfo != null && networkInfo.isConnected();
|
||||||
// If we just connected, grab the inintial signal strength and ssid
|
// If we just connected, grab the inintial signal strength and ssid
|
||||||
if (mWifiConnected && !wasConnected) {
|
if (mWifiConnected && !wasConnected) {
|
||||||
WifiInfo info = mWifiManager.getConnectionInfo();
|
// try getting it out of the intent first
|
||||||
|
WifiInfo info = (WifiInfo) intent.getParcelableExtra(WifiManager.EXTRA_WIFI_INFO);
|
||||||
|
if (info == null) {
|
||||||
|
info = mWifiManager.getConnectionInfo();
|
||||||
|
}
|
||||||
if (info != null) {
|
if (info != null) {
|
||||||
mWifiLevel = WifiManager.calculateSignalLevel(info.getRssi(),
|
|
||||||
WifiIcons.WIFI_LEVEL_COUNT);
|
|
||||||
mWifiSsid = huntForSsid(info);
|
mWifiSsid = huntForSsid(info);
|
||||||
} else {
|
} else {
|
||||||
mWifiLevel = 0;
|
|
||||||
mWifiSsid = null;
|
mWifiSsid = null;
|
||||||
}
|
}
|
||||||
} else if (!mWifiConnected) {
|
} else if (!mWifiConnected) {
|
||||||
mWifiLevel = 0;
|
|
||||||
mWifiSsid = null;
|
mWifiSsid = null;
|
||||||
}
|
}
|
||||||
|
// Apparently the wifi level is not stable at this point even if we've just connected to
|
||||||
|
// the network; we need to wait for an RSSI_CHANGED_ACTION for that. So let's just set
|
||||||
|
// it to 0 for now
|
||||||
|
mWifiLevel = 0;
|
||||||
|
mWifiRssi = -200;
|
||||||
} else if (action.equals(WifiManager.RSSI_CHANGED_ACTION)) {
|
} else if (action.equals(WifiManager.RSSI_CHANGED_ACTION)) {
|
||||||
if (mWifiConnected) {
|
if (mWifiConnected) {
|
||||||
final int newRssi = intent.getIntExtra(WifiManager.EXTRA_NEW_RSSI, -200);
|
mWifiRssi = intent.getIntExtra(WifiManager.EXTRA_NEW_RSSI, -200);
|
||||||
mWifiLevel = WifiManager.calculateSignalLevel(newRssi, WifiIcons.WIFI_LEVEL_COUNT);
|
mWifiLevel = WifiManager.calculateSignalLevel(
|
||||||
|
mWifiRssi, WifiIcons.WIFI_LEVEL_COUNT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1031,6 +1036,8 @@ public class NetworkController extends BroadcastReceiver {
|
|||||||
pw.println(mWifiEnabled);
|
pw.println(mWifiEnabled);
|
||||||
pw.print(" mWifiConnected=");
|
pw.print(" mWifiConnected=");
|
||||||
pw.println(mWifiConnected);
|
pw.println(mWifiConnected);
|
||||||
|
pw.print(" mWifiRssi=");
|
||||||
|
pw.println(mWifiRssi);
|
||||||
pw.print(" mWifiLevel=");
|
pw.print(" mWifiLevel=");
|
||||||
pw.println(mWifiLevel);
|
pw.println(mWifiLevel);
|
||||||
pw.print(" mWifiSsid=");
|
pw.print(" mWifiSsid=");
|
||||||
|
|||||||
Reference in New Issue
Block a user