summaryrefslogtreecommitdiff
path: root/service/java/com/android/server/wifi/WifiConnectivityManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'service/java/com/android/server/wifi/WifiConnectivityManager.java')
-rw-r--r--service/java/com/android/server/wifi/WifiConnectivityManager.java22
1 files changed, 22 insertions, 0 deletions
diff --git a/service/java/com/android/server/wifi/WifiConnectivityManager.java b/service/java/com/android/server/wifi/WifiConnectivityManager.java
index 12c64b542..6413f9711 100644
--- a/service/java/com/android/server/wifi/WifiConnectivityManager.java
+++ b/service/java/com/android/server/wifi/WifiConnectivityManager.java
@@ -23,6 +23,7 @@ import android.annotation.NonNull;
import android.app.AlarmManager;
import android.content.Context;
import android.net.MacAddress;
+import android.net.wifi.p2p.WifiP2pManager;
import android.net.wifi.ScanResult;
import android.net.wifi.SupplicantState;
import android.net.wifi.WifiConfiguration;
@@ -160,6 +161,7 @@ public class WifiConnectivityManager {
private boolean mAutoJoinEnabled = false; // disabled by default, enabled by external triggers
private boolean mRunning = false;
private boolean mScreenOn = false;
+ private int mMiracastMode = WifiP2pManager.MIRACAST_DISABLED;
private int mWifiState = WIFI_STATE_UNKNOWN;
private int mInitialScanState = INITIAL_SCAN_STATE_COMPLETE;
private boolean mAutoJoinEnabledExternal = true; // enabled by default
@@ -1256,6 +1258,17 @@ public class WifiConnectivityManager {
// Start a single scan
private void startForcedSingleScan(boolean isFullBandScan, WorkSource workSource) {
+ // Any scans will impact wifi performance including WFD performance,
+ // So at least ignore scans triggered internally by ConnectivityManager
+ // when WFD session is active. We still allow connectivity scans initiated
+ // by other work source.
+ if (WIFI_WORK_SOURCE.equals(workSource) &&
+ (mMiracastMode == WifiP2pManager.MIRACAST_SOURCE ||
+ mMiracastMode == WifiP2pManager.MIRACAST_SINK)) {
+ localLog("Ignore connectivity scan, MiracastMode:" + mMiracastMode);
+ return;
+ }
+
mPnoScanListener.resetLowRssiNetworkRetryDelay();
ScanSettings settings = new ScanSettings();
@@ -1596,6 +1609,15 @@ public class WifiConnectivityManager {
}
/**
+ * Save current miracast mode, it will be used to ignore
+ * connectivity scan during the time when miracast is enabled.
+ */
+ public void saveMiracastMode(int mode) {
+ localLog("saveMiracastMode: mode=" + mode);
+ mMiracastMode = mode;
+ }
+
+ /**
* Helper function that converts the WIFI_STATE_XXX constants to string
*/
private static String stateToString(int state) {