summaryrefslogtreecommitdiff
path: root/wifi/java
diff options
context:
space:
mode:
authorDaniel Norman <danielnorman@google.com>2021-02-08 11:11:18 -0800
committerDaniel Norman <danielnorman@google.com>2021-02-17 08:39:59 -0800
commit337095f9d277c566cb888bc3adbac16576f1ae70 (patch)
tree8818a5cd44fdfa89f7ef4d8570dbc67239e087dd /wifi/java
parent80b7ed3f7373212a33fe42af8a7b7fc0ebcb187c (diff)
parenta66768631e6f47e1f7ffcf4ec86f96d6e8f35282 (diff)
Merge SP1A.210208.001
Change-Id: I7d4929024872b369444e276a60ded06e37b1fefb
Diffstat (limited to 'wifi/java')
-rw-r--r--wifi/java/src/android/net/wifi/nl80211/SingleScanSettings.java6
-rw-r--r--wifi/java/src/android/net/wifi/nl80211/WifiNl80211Manager.java23
2 files changed, 27 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 9bc5a5c37dd3..1685d99b1c92 100644
--- a/wifi/java/src/android/net/wifi/nl80211/WifiNl80211Manager.java
+++ b/wifi/java/src/android/net/wifi/nl80211/WifiNl80211Manager.java
@@ -20,6 +20,7 @@ import android.annotation.CallbackExecutor;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.annotation.SuppressLint;
import android.annotation.SystemApi;
import android.annotation.SystemService;
import android.app.AlarmManager;
@@ -28,6 +29,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 +92,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;
@@ -900,6 +906,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
@@ -918,11 +933,14 @@ 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) {
+ @SuppressLint("NullableCollection") @Nullable Set<Integer> freqs,
+ @SuppressLint("NullableCollection") @Nullable List<byte[]> hiddenNetworkSSIDs,
+ @SuppressLint("NullableCollection") @Nullable Bundle extraScanningParams) {
IWifiScannerImpl scannerImpl = getScannerImpl(ifaceName);
if (scannerImpl == null) {
Log.e(TAG, "No valid wificond scanner interface handler for iface=" + ifaceName);
@@ -937,6 +955,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) {