summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
authorRoshan Pius <rpius@google.com>2016-04-18 23:04:37 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2016-04-18 23:04:37 +0000
commit1e5ceb7ad228e29bf0f6b4706df49c684880c6e0 (patch)
tree82ec33eaea9bd99d25680451143aa9c0d1743941 /service
parenta6b66a48b231f5729b8015d3446feb4c2fa0a9d1 (diff)
parent79e3bf8db6b566a5b3c7065cdd43f87f07e73747 (diff)
Merge "WifiConnectivityManger: Enable background/ePNO scan" into nyc-dev
Diffstat (limited to 'service')
-rw-r--r--service/java/com/android/server/wifi/WifiConnectivityManager.java26
-rw-r--r--service/java/com/android/server/wifi/scanner/HalWifiScannerImpl.java5
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