diff options
author | Roshan Pius <rpius@google.com> | 2016-04-18 23:04:37 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2016-04-18 23:04:37 +0000 |
commit | 1e5ceb7ad228e29bf0f6b4706df49c684880c6e0 (patch) | |
tree | 82ec33eaea9bd99d25680451143aa9c0d1743941 /service | |
parent | a6b66a48b231f5729b8015d3446feb4c2fa0a9d1 (diff) | |
parent | 79e3bf8db6b566a5b3c7065cdd43f87f07e73747 (diff) |
Merge "WifiConnectivityManger: Enable background/ePNO scan" into nyc-dev
Diffstat (limited to 'service')
-rw-r--r-- | service/java/com/android/server/wifi/WifiConnectivityManager.java | 26 | ||||
-rw-r--r-- | service/java/com/android/server/wifi/scanner/HalWifiScannerImpl.java | 5 |
2 files changed, 18 insertions, 13 deletions
diff --git a/service/java/com/android/server/wifi/WifiConnectivityManager.java b/service/java/com/android/server/wifi/WifiConnectivityManager.java index ef2c06782..48ae5ed3f 100644 --- a/service/java/com/android/server/wifi/WifiConnectivityManager.java +++ b/service/java/com/android/server/wifi/WifiConnectivityManager.java @@ -55,8 +55,11 @@ public class WifiConnectivityManager { // performed when screen is on. private static final int PERIODIC_SCAN_INTERVAL_MS = 20000; // 20 seconds // PNO scan interval in milli-seconds. This is the scan - // performed when screen is off. - private static final int PNO_SCAN_INTERVAL_MS = 160000; // 160 seconds + // performed when screen is off and disconnected. + private static final int DISCONNECTED_PNO_SCAN_INTERVAL_MS = 20000; // 20 seconds + // PNO scan interval in milli-seconds. This is the scan + // performed when screen is off and connected. + private static final int CONNECTED_PNO_SCAN_INTERVAL_MS = 160000; // 160 seconds // Maximum number of retries when starting a scan failed private static final int MAX_SCAN_RESTART_ALLOWED = 5; // Number of milli-seconds to delay before retry starting @@ -76,6 +79,12 @@ public class WifiConnectivityManager { public static final int WIFI_STATE_DISCONNECTED = 2; public static final int WIFI_STATE_TRANSITIONING = 3; + // Due to b/28020168, timer based single scan will be scheduled every + // PERIODIC_SCAN_INTERVAL_MS to provide periodic scan. + private static final boolean ENABLE_BACKGROUND_SCAN = true; + // Flag to turn on connected PNO, when needed + private static final boolean ENABLE_CONNECTED_PNO_SCAN = true; + private final WifiStateMachine mStateMachine; private final WifiScanner mScanner; private final WifiConfigManager mConfigManager; @@ -94,9 +103,6 @@ public class WifiConnectivityManager { private boolean mUntrustedConnectionAllowed = false; private int mScanRestartCount = 0; private int mSingleScanRestartCount = 0; - // Due to b/28020168, timer based single scan will be scheduled every - // PERIODIC_SCAN_INTERVAL_MS to provide periodic scan. - private boolean mNoBackgroundScan = true; // PNO settings private int mMin5GHzRssi; @@ -502,7 +508,7 @@ public class WifiConnectivityManager { private void startPeriodicScan() { // Due to b/28020168, timer based single scan will be scheduled every // PERIODIC_SCAN_INTERVAL_MS to provide periodic scan. - if (mNoBackgroundScan) { + if (!ENABLE_BACKGROUND_SCAN) { startSingleScan(); schedulePeriodicScanTimer(); } else { @@ -547,7 +553,7 @@ public class WifiConnectivityManager { scanSettings.band = getScanBand(); scanSettings.reportEvents = WifiScanner.REPORT_EVENT_NO_BATCH; scanSettings.numBssidsPerScan = 0; - scanSettings.periodInMs = PNO_SCAN_INTERVAL_MS; + scanSettings.periodInMs = DISCONNECTED_PNO_SCAN_INTERVAL_MS; // TODO: enable exponential back off scan later to further save energy // scanSettings.maxPeriodInMs = 8 * scanSettings.periodInMs; @@ -559,7 +565,7 @@ public class WifiConnectivityManager { // Start a ConnectedPNO scan when screen is off and Wifi is connected private void startConnectedPnoScan() { // Disable ConnectedPNO for now due to b/28020168 - if (mNoBackgroundScan) { + if (!ENABLE_CONNECTED_PNO_SCAN) { return; } @@ -590,7 +596,7 @@ public class WifiConnectivityManager { scanSettings.band = getScanBand(); scanSettings.reportEvents = WifiScanner.REPORT_EVENT_NO_BATCH; scanSettings.numBssidsPerScan = 0; - scanSettings.periodInMs = PNO_SCAN_INTERVAL_MS; + scanSettings.periodInMs = CONNECTED_PNO_SCAN_INTERVAL_MS; // TODO: enable exponential back off scan later to further save energy // scanSettings.maxPeriodInMs = 8 * scanSettings.periodInMs; @@ -678,7 +684,7 @@ public class WifiConnectivityManager { private void stopConnectivityScan() { // Due to b/28020168, timer based single scan will be scheduled every // PERIODIC_SCAN_INTERVAL_MS to provide periodic scan. - if (mNoBackgroundScan) { + if (!ENABLE_BACKGROUND_SCAN) { mAlarmManager.cancel(mPeriodicScanTimerListener); } else { mScanner.stopBackgroundScan(mPeriodicScanListener); diff --git a/service/java/com/android/server/wifi/scanner/HalWifiScannerImpl.java b/service/java/com/android/server/wifi/scanner/HalWifiScannerImpl.java index 18f159f7f..f202a5399 100644 --- a/service/java/com/android/server/wifi/scanner/HalWifiScannerImpl.java +++ b/service/java/com/android/server/wifi/scanner/HalWifiScannerImpl.java @@ -17,6 +17,7 @@ package com.android.server.wifi.scanner; import android.content.Context; +import android.net.wifi.WifiManager; import android.net.wifi.WifiScanner; import android.os.Handler; import android.os.Looper; @@ -47,11 +48,9 @@ public class HalWifiScannerImpl extends WifiScannerImpl implements Handler.Callb // Check if ePNO is supported by the HAL. int halFeatureSet = mWifiNative.getSupportedFeatureSet(); - mHalBasedPnoSupported = false; - /* TODO(b/27877781): Swith ePNO on mHalBasedPnoSupported = ((halFeatureSet & WifiManager.WIFI_FEATURE_HAL_EPNO) - == WifiManager.WIFI_FEATURE_HAL_EPNO); */ + == WifiManager.WIFI_FEATURE_HAL_EPNO); } @Override |