diff options
Diffstat (limited to 'wifi/java/src')
-rw-r--r-- | wifi/java/src/android/net/wifi/nl80211/SingleScanSettings.java | 6 | ||||
-rw-r--r-- | wifi/java/src/android/net/wifi/nl80211/WifiNl80211Manager.java | 21 |
2 files changed, 25 insertions, 2 deletions
diff --git a/wifi/java/src/android/net/wifi/nl80211/SingleScanSettings.java b/wifi/java/src/android/net/wifi/nl80211/SingleScanSettings.java index 24b1854fbf6c..1d479fc14d29 100644 --- a/wifi/java/src/android/net/wifi/nl80211/SingleScanSettings.java +++ b/wifi/java/src/android/net/wifi/nl80211/SingleScanSettings.java @@ -32,6 +32,7 @@ public class SingleScanSettings implements Parcelable { private static final String TAG = "SingleScanSettings"; public int scanType; + public boolean enable6GhzRnr; public ArrayList<ChannelSettings> channelSettings; public ArrayList<HiddenNetwork> hiddenNetworks; @@ -50,6 +51,7 @@ public class SingleScanSettings implements Parcelable { return false; } return scanType == settings.scanType + && enable6GhzRnr == settings.enable6GhzRnr && channelSettings.equals(settings.channelSettings) && hiddenNetworks.equals(settings.hiddenNetworks); } @@ -57,7 +59,7 @@ public class SingleScanSettings implements Parcelable { /** override hash code */ @Override public int hashCode() { - return Objects.hash(scanType, channelSettings, hiddenNetworks); + return Objects.hash(scanType, channelSettings, hiddenNetworks, enable6GhzRnr); } @@ -83,6 +85,7 @@ public class SingleScanSettings implements Parcelable { Log.wtf(TAG, "Invalid scan type " + scanType); } out.writeInt(scanType); + out.writeBoolean(enable6GhzRnr); out.writeTypedList(channelSettings); out.writeTypedList(hiddenNetworks); } @@ -100,6 +103,7 @@ public class SingleScanSettings implements Parcelable { if (!isValidScanType(result.scanType)) { Log.wtf(TAG, "Invalid scan type " + result.scanType); } + result.enable6GhzRnr = in.readBoolean(); result.channelSettings = new ArrayList<ChannelSettings>(); in.readTypedList(result.channelSettings, ChannelSettings.CREATOR); result.hiddenNetworks = new ArrayList<HiddenNetwork>(); diff --git a/wifi/java/src/android/net/wifi/nl80211/WifiNl80211Manager.java b/wifi/java/src/android/net/wifi/nl80211/WifiNl80211Manager.java index db2eb99297c2..ef2653204af5 100644 --- a/wifi/java/src/android/net/wifi/nl80211/WifiNl80211Manager.java +++ b/wifi/java/src/android/net/wifi/nl80211/WifiNl80211Manager.java @@ -28,6 +28,7 @@ import android.net.wifi.SoftApInfo; import android.net.wifi.WifiAnnotations; import android.net.wifi.WifiScanner; import android.os.Binder; +import android.os.Bundle; import android.os.Handler; import android.os.IBinder; import android.os.RemoteException; @@ -90,6 +91,10 @@ public class WifiNl80211Manager { */ public static final int SCAN_TYPE_PNO_SCAN = 1; + // Extra scanning parameter used to enable 6Ghz RNR (Reduced Neighbour Support). + public static final String SCANNING_PARAM_ENABLE_6GHZ_RNR = + "android.net.wifi.nl80211.SCANNING_PARAM_ENABLE_6GHZ_RNR"; + private AlarmManager mAlarmManager; private Handler mEventHandler; @@ -911,6 +916,15 @@ public class WifiNl80211Manager { } /** + * @deprecated replaced by {@link #startScan(String, int, Set, List, Bundle)} + **/ + @Deprecated + public boolean startScan(@NonNull String ifaceName, @WifiAnnotations.ScanType int scanType, + @Nullable Set<Integer> freqs, @Nullable List<byte[]> hiddenNetworkSSIDs) { + return startScan(ifaceName, scanType, freqs, hiddenNetworkSSIDs, null); + } + + /** * Start a scan using the specified parameters. A scan is an asynchronous operation. The * result of the operation is returned in the {@link ScanEventCallback} registered when * setting up an interface using @@ -929,11 +943,13 @@ public class WifiNl80211Manager { * @param freqs list of frequencies to scan for, if null scan all supported channels. * @param hiddenNetworkSSIDs List of hidden networks to be scanned for, a null indicates that * no hidden frequencies will be scanned for. + * @param extraScanningParams bundle of extra scanning parameters. * @return Returns true on success, false on failure (e.g. when called before the interface * has been set up). */ public boolean startScan(@NonNull String ifaceName, @WifiAnnotations.ScanType int scanType, - @Nullable Set<Integer> freqs, @Nullable List<byte[]> hiddenNetworkSSIDs) { + @Nullable Set<Integer> freqs, @Nullable List<byte[]> hiddenNetworkSSIDs, + @Nullable Bundle extraScanningParams) { IWifiScannerImpl scannerImpl = getScannerImpl(ifaceName); if (scannerImpl == null) { Log.e(TAG, "No valid wificond scanner interface handler for iface=" + ifaceName); @@ -948,6 +964,9 @@ public class WifiNl80211Manager { } settings.channelSettings = new ArrayList<>(); settings.hiddenNetworks = new ArrayList<>(); + if (extraScanningParams != null) { + settings.enable6GhzRnr = extraScanningParams.getBoolean(SCANNING_PARAM_ENABLE_6GHZ_RNR); + } if (freqs != null) { for (Integer freq : freqs) { |