summaryrefslogtreecommitdiffstats
path: root/service/java/com/android/server/wifi/scanner
diff options
context:
space:
mode:
authorNingyuan Wang <nywang@google.com>2017-04-27 12:59:53 -0700
committerNingyuan Wang <nywang@google.com>2017-05-03 11:18:49 -0700
commitb47a0de674df76df087f0a0d642aea2603bbf6ab (patch)
treecb9462df9f05f58bbe35a1ea9b9263b92802b063 /service/java/com/android/server/wifi/scanner
parent8b484d08ba97fd99dfe56dba4bf2fd1bd81e3cde (diff)
downloadandroid_frameworks_opt_net_wifi-b47a0de674df76df087f0a0d642aea2603bbf6ab.tar.gz
android_frameworks_opt_net_wifi-b47a0de674df76df087f0a0d642aea2603bbf6ab.tar.bz2
android_frameworks_opt_net_wifi-b47a0de674df76df087f0a0d642aea2603bbf6ab.zip
Remove networks from supplicant before starting PNO scan
We only start PNO scan when network is disconnected and screen is off. In the case we get disconnected from an AP, supplicant will keep triggering scan and reconnect to that network. This behavior is useful for immediate reconnection. However, when PNO scan is on, the supplicant's single scan and PNO scan would usually fail each other because they share the same radio resource. This is causing power regression. With this patch, we remove networks from supplicant so supplicant will not keep scanning for reconnection when PNO scan is on. Bug: 37744179 Test: unit tests, manual test, integration test Change-Id: I03d4dea3b7f1acb51d716126f1057c13cd3ee9be
Diffstat (limited to 'service/java/com/android/server/wifi/scanner')
-rw-r--r--service/java/com/android/server/wifi/scanner/WificondScannerImpl.java2
1 files changed, 2 insertions, 0 deletions
diff --git a/service/java/com/android/server/wifi/scanner/WificondScannerImpl.java b/service/java/com/android/server/wifi/scanner/WificondScannerImpl.java
index 1d6d5524a..12024731f 100644
--- a/service/java/com/android/server/wifi/scanner/WificondScannerImpl.java
+++ b/service/java/com/android/server/wifi/scanner/WificondScannerImpl.java
@@ -894,6 +894,8 @@ public class WificondScannerImpl extends WifiScannerImpl implements Handler.Call
return false;
}
mLastPnoChangeTimeStamp = mClock.getElapsedSinceBootMillis();
+ Log.d(TAG, "Remove all networks from supplicant before starting PNO scan");
+ mWifiNative.removeAllNetworks();
if (mWifiNative.startPnoScan(mPnoSettings)) {
Log.d(TAG, "Changed PNO state from " + mCurrentPnoState + " to enable");
mCurrentPnoState = true;