Loading core/api/system-current.txt +1 −0 Original line number Original line Diff line number Diff line Loading @@ -9718,6 +9718,7 @@ package android.net.wifi.nl80211 { method public boolean tearDownInterfaces(); method public boolean tearDownInterfaces(); method public boolean tearDownSoftApInterface(@NonNull String); method public boolean tearDownSoftApInterface(@NonNull String); method public void unregisterCountryCodeChangedListener(@NonNull android.net.wifi.nl80211.WifiNl80211Manager.CountryCodeChangedListener); method public void unregisterCountryCodeChangedListener(@NonNull android.net.wifi.nl80211.WifiNl80211Manager.CountryCodeChangedListener); field public static final String EXTRA_SCANNING_PARAM_VENDOR_IES = "android.net.wifi.nl80211.extra.SCANNING_PARAM_VENDOR_IES"; field public static final String SCANNING_PARAM_ENABLE_6GHZ_RNR = "android.net.wifi.nl80211.SCANNING_PARAM_ENABLE_6GHZ_RNR"; field public static final String SCANNING_PARAM_ENABLE_6GHZ_RNR = "android.net.wifi.nl80211.SCANNING_PARAM_ENABLE_6GHZ_RNR"; field public static final int SCAN_TYPE_PNO_SCAN = 1; // 0x1 field public static final int SCAN_TYPE_PNO_SCAN = 1; // 0x1 field public static final int SCAN_TYPE_SINGLE_SCAN = 0; // 0x0 field public static final int SCAN_TYPE_SINGLE_SCAN = 0; // 0x0 wifi/java/src/android/net/wifi/nl80211/SingleScanSettings.java +15 −2 Original line number Original line Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.os.Parcelable; import android.util.Log; import android.util.Log; import java.util.ArrayList; import java.util.ArrayList; import java.util.Arrays; import java.util.Objects; import java.util.Objects; /** /** Loading @@ -35,6 +36,7 @@ public class SingleScanSettings implements Parcelable { public boolean enable6GhzRnr; public boolean enable6GhzRnr; public ArrayList<ChannelSettings> channelSettings; public ArrayList<ChannelSettings> channelSettings; public ArrayList<HiddenNetwork> hiddenNetworks; public ArrayList<HiddenNetwork> hiddenNetworks; public byte[] vendorIes; /** public constructor */ /** public constructor */ public SingleScanSettings() { } public SingleScanSettings() { } Loading @@ -53,13 +55,15 @@ public class SingleScanSettings implements Parcelable { return scanType == settings.scanType return scanType == settings.scanType && enable6GhzRnr == settings.enable6GhzRnr && enable6GhzRnr == settings.enable6GhzRnr && channelSettings.equals(settings.channelSettings) && channelSettings.equals(settings.channelSettings) && hiddenNetworks.equals(settings.hiddenNetworks); && hiddenNetworks.equals(settings.hiddenNetworks) && Arrays.equals(vendorIes, settings.vendorIes); } } /** override hash code */ /** override hash code */ @Override @Override public int hashCode() { public int hashCode() { return Objects.hash(scanType, channelSettings, hiddenNetworks, enable6GhzRnr); return Objects.hash(scanType, channelSettings, hiddenNetworks, enable6GhzRnr, Arrays.hashCode(vendorIes)); } } Loading Loading @@ -88,6 +92,11 @@ public class SingleScanSettings implements Parcelable { out.writeBoolean(enable6GhzRnr); out.writeBoolean(enable6GhzRnr); out.writeTypedList(channelSettings); out.writeTypedList(channelSettings); out.writeTypedList(hiddenNetworks); out.writeTypedList(hiddenNetworks); if (vendorIes == null) { out.writeByteArray(new byte[0]); } else { out.writeByteArray(vendorIes); } } } /** implement Parcelable interface */ /** implement Parcelable interface */ Loading @@ -108,6 +117,10 @@ public class SingleScanSettings implements Parcelable { in.readTypedList(result.channelSettings, ChannelSettings.CREATOR); in.readTypedList(result.channelSettings, ChannelSettings.CREATOR); result.hiddenNetworks = new ArrayList<HiddenNetwork>(); result.hiddenNetworks = new ArrayList<HiddenNetwork>(); in.readTypedList(result.hiddenNetworks, HiddenNetwork.CREATOR); in.readTypedList(result.hiddenNetworks, HiddenNetwork.CREATOR); result.vendorIes = in.createByteArray(); if (result.vendorIes == null) { result.vendorIes = new byte[0]; } if (in.dataAvail() != 0) { if (in.dataAvail() != 0) { Log.e(TAG, "Found trailing data after parcel parsing."); Log.e(TAG, "Found trailing data after parcel parsing."); } } Loading wifi/java/src/android/net/wifi/nl80211/WifiNl80211Manager.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -96,6 +96,10 @@ public class WifiNl80211Manager { public static final String SCANNING_PARAM_ENABLE_6GHZ_RNR = public static final String SCANNING_PARAM_ENABLE_6GHZ_RNR = "android.net.wifi.nl80211.SCANNING_PARAM_ENABLE_6GHZ_RNR"; "android.net.wifi.nl80211.SCANNING_PARAM_ENABLE_6GHZ_RNR"; // Extra scanning parameter used to add vendor IEs (byte[]). public static final String EXTRA_SCANNING_PARAM_VENDOR_IES = "android.net.wifi.nl80211.extra.SCANNING_PARAM_VENDOR_IES"; private AlarmManager mAlarmManager; private AlarmManager mAlarmManager; private Handler mEventHandler; private Handler mEventHandler; Loading Loading @@ -1135,6 +1139,7 @@ public class WifiNl80211Manager { settings.hiddenNetworks = new ArrayList<>(); settings.hiddenNetworks = new ArrayList<>(); if (extraScanningParams != null) { if (extraScanningParams != null) { settings.enable6GhzRnr = extraScanningParams.getBoolean(SCANNING_PARAM_ENABLE_6GHZ_RNR); settings.enable6GhzRnr = extraScanningParams.getBoolean(SCANNING_PARAM_ENABLE_6GHZ_RNR); settings.vendorIes = extraScanningParams.getByteArray(EXTRA_SCANNING_PARAM_VENDOR_IES); } } if (freqs != null) { if (freqs != null) { Loading wifi/tests/src/android/net/wifi/nl80211/SingleScanSettingsTest.java +7 −1 Original line number Original line Diff line number Diff line Loading @@ -47,6 +47,7 @@ public class SingleScanSettingsTest { private ChannelSettings mChannelSettings2; private ChannelSettings mChannelSettings2; private HiddenNetwork mHiddenNetwork1; private HiddenNetwork mHiddenNetwork1; private HiddenNetwork mHiddenNetwork2; private HiddenNetwork mHiddenNetwork2; private byte[] mVendorIes; @Before @Before public void setUp() { public void setUp() { Loading @@ -59,6 +60,9 @@ public class SingleScanSettingsTest { mHiddenNetwork1.ssid = TEST_SSID_1; mHiddenNetwork1.ssid = TEST_SSID_1; mHiddenNetwork2 = new HiddenNetwork(); mHiddenNetwork2 = new HiddenNetwork(); mHiddenNetwork2.ssid = TEST_SSID_2; mHiddenNetwork2.ssid = TEST_SSID_2; mVendorIes = new byte[]{(byte) 0xdd, 0x7, 0x00, 0x50, (byte) 0xf2, 0x08, 0x11, 0x22, 0x33, (byte) 0xdd, 0x7, 0x00, 0x50, (byte) 0xf2, 0x08, 0x44, 0x55, 0x66}; } } /** /** Loading @@ -69,12 +73,12 @@ public class SingleScanSettingsTest { public void canSerializeAndDeserialize() { public void canSerializeAndDeserialize() { SingleScanSettings scanSettings = new SingleScanSettings(); SingleScanSettings scanSettings = new SingleScanSettings(); scanSettings.scanType = IWifiScannerImpl.SCAN_TYPE_HIGH_ACCURACY; scanSettings.scanType = IWifiScannerImpl.SCAN_TYPE_HIGH_ACCURACY; scanSettings.channelSettings = scanSettings.channelSettings = new ArrayList<>(Arrays.asList(mChannelSettings1, mChannelSettings2)); new ArrayList<>(Arrays.asList(mChannelSettings1, mChannelSettings2)); scanSettings.hiddenNetworks = scanSettings.hiddenNetworks = new ArrayList<>(Arrays.asList(mHiddenNetwork1, mHiddenNetwork2)); new ArrayList<>(Arrays.asList(mHiddenNetwork1, mHiddenNetwork2)); scanSettings.enable6GhzRnr = true; scanSettings.enable6GhzRnr = true; scanSettings.vendorIes = mVendorIes; Parcel parcel = Parcel.obtain(); Parcel parcel = Parcel.obtain(); scanSettings.writeToParcel(parcel, 0); scanSettings.writeToParcel(parcel, 0); Loading @@ -98,6 +102,7 @@ public class SingleScanSettingsTest { new ArrayList<>(Arrays.asList(mChannelSettings1, mChannelSettings2)); new ArrayList<>(Arrays.asList(mChannelSettings1, mChannelSettings2)); scanSettings1.hiddenNetworks = scanSettings1.hiddenNetworks = new ArrayList<>(Arrays.asList(mHiddenNetwork1, mHiddenNetwork2)); new ArrayList<>(Arrays.asList(mHiddenNetwork1, mHiddenNetwork2)); scanSettings1.vendorIes = mVendorIes; SingleScanSettings scanSettings2 = new SingleScanSettings(); SingleScanSettings scanSettings2 = new SingleScanSettings(); scanSettings2.scanType = IWifiScannerImpl.SCAN_TYPE_HIGH_ACCURACY; scanSettings2.scanType = IWifiScannerImpl.SCAN_TYPE_HIGH_ACCURACY; Loading @@ -105,6 +110,7 @@ public class SingleScanSettingsTest { new ArrayList<>(Arrays.asList(mChannelSettings1, mChannelSettings2)); new ArrayList<>(Arrays.asList(mChannelSettings1, mChannelSettings2)); scanSettings2.hiddenNetworks = scanSettings2.hiddenNetworks = new ArrayList<>(Arrays.asList(mHiddenNetwork1, mHiddenNetwork2)); new ArrayList<>(Arrays.asList(mHiddenNetwork1, mHiddenNetwork2)); scanSettings2.vendorIes = mVendorIes; assertEquals(scanSettings1, scanSettings2); assertEquals(scanSettings1, scanSettings2); assertEquals(scanSettings1.hashCode(), scanSettings2.hashCode()); assertEquals(scanSettings1.hashCode(), scanSettings2.hashCode()); Loading wifi/tests/src/android/net/wifi/nl80211/WifiNl80211ManagerTest.java +18 −8 Original line number Original line Diff line number Diff line Loading @@ -68,6 +68,7 @@ import java.nio.charset.CharsetDecoder; import java.nio.charset.CharsetEncoder; import java.nio.charset.CharsetEncoder; import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.HashSet; import java.util.List; import java.util.List; import java.util.Set; import java.util.Set; Loading Loading @@ -127,6 +128,9 @@ public class WifiNl80211ManagerTest { private static final String TEST_QUOTED_SSID_2 = "\"testSsid2\""; private static final String TEST_QUOTED_SSID_2 = "\"testSsid2\""; private static final int[] TEST_FREQUENCIES_1 = {}; private static final int[] TEST_FREQUENCIES_1 = {}; private static final int[] TEST_FREQUENCIES_2 = {2500, 5124}; private static final int[] TEST_FREQUENCIES_2 = {2500, 5124}; private static final byte[] TEST_VENDOR_IES = new byte[]{(byte) 0xdd, 0x7, 0x00, 0x50, (byte) 0xf2, 0x08, 0x11, 0x22, 0x33, (byte) 0xdd, 0x7, 0x00, 0x50, (byte) 0xf2, 0x08, 0x44, 0x55, 0x66}; private static final MacAddress TEST_RAW_MAC_BYTES = MacAddress.fromBytes( private static final MacAddress TEST_RAW_MAC_BYTES = MacAddress.fromBytes( new byte[]{0x00, 0x01, 0x02, 0x03, 0x04, 0x05}); new byte[]{0x00, 0x01, 0x02, 0x03, 0x04, 0x05}); Loading Loading @@ -512,7 +516,7 @@ public class WifiNl80211ManagerTest { SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST)); SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST)); verify(mWifiScannerImpl).scan(argThat(new ScanMatcher( verify(mWifiScannerImpl).scan(argThat(new ScanMatcher( IWifiScannerImpl.SCAN_TYPE_LOW_POWER, IWifiScannerImpl.SCAN_TYPE_LOW_POWER, SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, false))); SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, false, null))); } } /** /** Loading @@ -523,12 +527,13 @@ public class WifiNl80211ManagerTest { when(mWifiScannerImpl.scan(any(SingleScanSettings.class))).thenReturn(true); when(mWifiScannerImpl.scan(any(SingleScanSettings.class))).thenReturn(true); Bundle bundle = new Bundle(); Bundle bundle = new Bundle(); bundle.putBoolean(WifiNl80211Manager.SCANNING_PARAM_ENABLE_6GHZ_RNR, true); bundle.putBoolean(WifiNl80211Manager.SCANNING_PARAM_ENABLE_6GHZ_RNR, true); bundle.putByteArray(WifiNl80211Manager.EXTRA_SCANNING_PARAM_VENDOR_IES, TEST_VENDOR_IES); assertTrue(mWificondControl.startScan( assertTrue(mWificondControl.startScan( TEST_INTERFACE_NAME, WifiScanner.SCAN_TYPE_LOW_POWER, TEST_INTERFACE_NAME, WifiScanner.SCAN_TYPE_LOW_POWER, SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, bundle)); SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, bundle)); verify(mWifiScannerImpl).scan(argThat(new ScanMatcher( verify(mWifiScannerImpl).scan(argThat(new ScanMatcher( IWifiScannerImpl.SCAN_TYPE_LOW_POWER, IWifiScannerImpl.SCAN_TYPE_LOW_POWER, SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, true))); SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, true, TEST_VENDOR_IES))); } } /** /** Loading @@ -542,7 +547,7 @@ public class WifiNl80211ManagerTest { SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, null)); SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, null)); verify(mWifiScannerImpl).scan(argThat(new ScanMatcher( verify(mWifiScannerImpl).scan(argThat(new ScanMatcher( IWifiScannerImpl.SCAN_TYPE_LOW_POWER, IWifiScannerImpl.SCAN_TYPE_LOW_POWER, SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, false))); SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, false, null))); } } /** /** Loading @@ -556,7 +561,7 @@ public class WifiNl80211ManagerTest { SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, new Bundle())); SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, new Bundle())); verify(mWifiScannerImpl).scan(argThat(new ScanMatcher( verify(mWifiScannerImpl).scan(argThat(new ScanMatcher( IWifiScannerImpl.SCAN_TYPE_LOW_POWER, IWifiScannerImpl.SCAN_TYPE_LOW_POWER, SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, false))); SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, false, null))); } } /** /** Loading @@ -577,7 +582,7 @@ public class WifiNl80211ManagerTest { // But the argument passed down should have the duplicate removed. // But the argument passed down should have the duplicate removed. verify(mWifiScannerImpl).scan(argThat(new ScanMatcher( verify(mWifiScannerImpl).scan(argThat(new ScanMatcher( IWifiScannerImpl.SCAN_TYPE_LOW_POWER, IWifiScannerImpl.SCAN_TYPE_LOW_POWER, SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, false))); SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, false, null))); } } /** /** Loading @@ -589,7 +594,7 @@ public class WifiNl80211ManagerTest { assertTrue(mWificondControl.startScan( assertTrue(mWificondControl.startScan( TEST_INTERFACE_NAME, WifiScanner.SCAN_TYPE_HIGH_ACCURACY, null, null)); TEST_INTERFACE_NAME, WifiScanner.SCAN_TYPE_HIGH_ACCURACY, null, null)); verify(mWifiScannerImpl).scan(argThat(new ScanMatcher( verify(mWifiScannerImpl).scan(argThat(new ScanMatcher( IWifiScannerImpl.SCAN_TYPE_HIGH_ACCURACY, null, null, false))); IWifiScannerImpl.SCAN_TYPE_HIGH_ACCURACY, null, null, false, null))); } } /** /** Loading Loading @@ -1161,13 +1166,15 @@ public class WifiNl80211ManagerTest { private final Set<Integer> mExpectedFreqs; private final Set<Integer> mExpectedFreqs; private final List<byte[]> mExpectedSsids; private final List<byte[]> mExpectedSsids; private final boolean mExpectedEnable6GhzRnr; private final boolean mExpectedEnable6GhzRnr; private final byte[] mExpectedVendorIes; ScanMatcher(int expectedScanType, Set<Integer> expectedFreqs, List<byte[]> expectedSsids, ScanMatcher(int expectedScanType, Set<Integer> expectedFreqs, List<byte[]> expectedSsids, boolean expectedEnable6GhzRnr) { boolean expectedEnable6GhzRnr, byte[] expectedVendorIes) { this.mExpectedScanType = expectedScanType; this.mExpectedScanType = expectedScanType; this.mExpectedFreqs = expectedFreqs; this.mExpectedFreqs = expectedFreqs; this.mExpectedSsids = expectedSsids; this.mExpectedSsids = expectedSsids; this.mExpectedEnable6GhzRnr = expectedEnable6GhzRnr; this.mExpectedEnable6GhzRnr = expectedEnable6GhzRnr; this.mExpectedVendorIes = expectedVendorIes; } } @Override @Override Loading Loading @@ -1202,12 +1209,15 @@ public class WifiNl80211ManagerTest { if (!mExpectedSsids.equals(ssidSet)) { if (!mExpectedSsids.equals(ssidSet)) { return false; return false; } } } else { } else { if (hiddenNetworks != null && hiddenNetworks.size() > 0) { if (hiddenNetworks != null && hiddenNetworks.size() > 0) { return false; return false; } } } } if (!Arrays.equals(mExpectedVendorIes, settings.vendorIes)) { return false; } return true; return true; } } Loading Loading
core/api/system-current.txt +1 −0 Original line number Original line Diff line number Diff line Loading @@ -9718,6 +9718,7 @@ package android.net.wifi.nl80211 { method public boolean tearDownInterfaces(); method public boolean tearDownInterfaces(); method public boolean tearDownSoftApInterface(@NonNull String); method public boolean tearDownSoftApInterface(@NonNull String); method public void unregisterCountryCodeChangedListener(@NonNull android.net.wifi.nl80211.WifiNl80211Manager.CountryCodeChangedListener); method public void unregisterCountryCodeChangedListener(@NonNull android.net.wifi.nl80211.WifiNl80211Manager.CountryCodeChangedListener); field public static final String EXTRA_SCANNING_PARAM_VENDOR_IES = "android.net.wifi.nl80211.extra.SCANNING_PARAM_VENDOR_IES"; field public static final String SCANNING_PARAM_ENABLE_6GHZ_RNR = "android.net.wifi.nl80211.SCANNING_PARAM_ENABLE_6GHZ_RNR"; field public static final String SCANNING_PARAM_ENABLE_6GHZ_RNR = "android.net.wifi.nl80211.SCANNING_PARAM_ENABLE_6GHZ_RNR"; field public static final int SCAN_TYPE_PNO_SCAN = 1; // 0x1 field public static final int SCAN_TYPE_PNO_SCAN = 1; // 0x1 field public static final int SCAN_TYPE_SINGLE_SCAN = 0; // 0x0 field public static final int SCAN_TYPE_SINGLE_SCAN = 0; // 0x0
wifi/java/src/android/net/wifi/nl80211/SingleScanSettings.java +15 −2 Original line number Original line Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.os.Parcelable; import android.util.Log; import android.util.Log; import java.util.ArrayList; import java.util.ArrayList; import java.util.Arrays; import java.util.Objects; import java.util.Objects; /** /** Loading @@ -35,6 +36,7 @@ public class SingleScanSettings implements Parcelable { public boolean enable6GhzRnr; public boolean enable6GhzRnr; public ArrayList<ChannelSettings> channelSettings; public ArrayList<ChannelSettings> channelSettings; public ArrayList<HiddenNetwork> hiddenNetworks; public ArrayList<HiddenNetwork> hiddenNetworks; public byte[] vendorIes; /** public constructor */ /** public constructor */ public SingleScanSettings() { } public SingleScanSettings() { } Loading @@ -53,13 +55,15 @@ public class SingleScanSettings implements Parcelable { return scanType == settings.scanType return scanType == settings.scanType && enable6GhzRnr == settings.enable6GhzRnr && enable6GhzRnr == settings.enable6GhzRnr && channelSettings.equals(settings.channelSettings) && channelSettings.equals(settings.channelSettings) && hiddenNetworks.equals(settings.hiddenNetworks); && hiddenNetworks.equals(settings.hiddenNetworks) && Arrays.equals(vendorIes, settings.vendorIes); } } /** override hash code */ /** override hash code */ @Override @Override public int hashCode() { public int hashCode() { return Objects.hash(scanType, channelSettings, hiddenNetworks, enable6GhzRnr); return Objects.hash(scanType, channelSettings, hiddenNetworks, enable6GhzRnr, Arrays.hashCode(vendorIes)); } } Loading Loading @@ -88,6 +92,11 @@ public class SingleScanSettings implements Parcelable { out.writeBoolean(enable6GhzRnr); out.writeBoolean(enable6GhzRnr); out.writeTypedList(channelSettings); out.writeTypedList(channelSettings); out.writeTypedList(hiddenNetworks); out.writeTypedList(hiddenNetworks); if (vendorIes == null) { out.writeByteArray(new byte[0]); } else { out.writeByteArray(vendorIes); } } } /** implement Parcelable interface */ /** implement Parcelable interface */ Loading @@ -108,6 +117,10 @@ public class SingleScanSettings implements Parcelable { in.readTypedList(result.channelSettings, ChannelSettings.CREATOR); in.readTypedList(result.channelSettings, ChannelSettings.CREATOR); result.hiddenNetworks = new ArrayList<HiddenNetwork>(); result.hiddenNetworks = new ArrayList<HiddenNetwork>(); in.readTypedList(result.hiddenNetworks, HiddenNetwork.CREATOR); in.readTypedList(result.hiddenNetworks, HiddenNetwork.CREATOR); result.vendorIes = in.createByteArray(); if (result.vendorIes == null) { result.vendorIes = new byte[0]; } if (in.dataAvail() != 0) { if (in.dataAvail() != 0) { Log.e(TAG, "Found trailing data after parcel parsing."); Log.e(TAG, "Found trailing data after parcel parsing."); } } Loading
wifi/java/src/android/net/wifi/nl80211/WifiNl80211Manager.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -96,6 +96,10 @@ public class WifiNl80211Manager { public static final String SCANNING_PARAM_ENABLE_6GHZ_RNR = public static final String SCANNING_PARAM_ENABLE_6GHZ_RNR = "android.net.wifi.nl80211.SCANNING_PARAM_ENABLE_6GHZ_RNR"; "android.net.wifi.nl80211.SCANNING_PARAM_ENABLE_6GHZ_RNR"; // Extra scanning parameter used to add vendor IEs (byte[]). public static final String EXTRA_SCANNING_PARAM_VENDOR_IES = "android.net.wifi.nl80211.extra.SCANNING_PARAM_VENDOR_IES"; private AlarmManager mAlarmManager; private AlarmManager mAlarmManager; private Handler mEventHandler; private Handler mEventHandler; Loading Loading @@ -1135,6 +1139,7 @@ public class WifiNl80211Manager { settings.hiddenNetworks = new ArrayList<>(); settings.hiddenNetworks = new ArrayList<>(); if (extraScanningParams != null) { if (extraScanningParams != null) { settings.enable6GhzRnr = extraScanningParams.getBoolean(SCANNING_PARAM_ENABLE_6GHZ_RNR); settings.enable6GhzRnr = extraScanningParams.getBoolean(SCANNING_PARAM_ENABLE_6GHZ_RNR); settings.vendorIes = extraScanningParams.getByteArray(EXTRA_SCANNING_PARAM_VENDOR_IES); } } if (freqs != null) { if (freqs != null) { Loading
wifi/tests/src/android/net/wifi/nl80211/SingleScanSettingsTest.java +7 −1 Original line number Original line Diff line number Diff line Loading @@ -47,6 +47,7 @@ public class SingleScanSettingsTest { private ChannelSettings mChannelSettings2; private ChannelSettings mChannelSettings2; private HiddenNetwork mHiddenNetwork1; private HiddenNetwork mHiddenNetwork1; private HiddenNetwork mHiddenNetwork2; private HiddenNetwork mHiddenNetwork2; private byte[] mVendorIes; @Before @Before public void setUp() { public void setUp() { Loading @@ -59,6 +60,9 @@ public class SingleScanSettingsTest { mHiddenNetwork1.ssid = TEST_SSID_1; mHiddenNetwork1.ssid = TEST_SSID_1; mHiddenNetwork2 = new HiddenNetwork(); mHiddenNetwork2 = new HiddenNetwork(); mHiddenNetwork2.ssid = TEST_SSID_2; mHiddenNetwork2.ssid = TEST_SSID_2; mVendorIes = new byte[]{(byte) 0xdd, 0x7, 0x00, 0x50, (byte) 0xf2, 0x08, 0x11, 0x22, 0x33, (byte) 0xdd, 0x7, 0x00, 0x50, (byte) 0xf2, 0x08, 0x44, 0x55, 0x66}; } } /** /** Loading @@ -69,12 +73,12 @@ public class SingleScanSettingsTest { public void canSerializeAndDeserialize() { public void canSerializeAndDeserialize() { SingleScanSettings scanSettings = new SingleScanSettings(); SingleScanSettings scanSettings = new SingleScanSettings(); scanSettings.scanType = IWifiScannerImpl.SCAN_TYPE_HIGH_ACCURACY; scanSettings.scanType = IWifiScannerImpl.SCAN_TYPE_HIGH_ACCURACY; scanSettings.channelSettings = scanSettings.channelSettings = new ArrayList<>(Arrays.asList(mChannelSettings1, mChannelSettings2)); new ArrayList<>(Arrays.asList(mChannelSettings1, mChannelSettings2)); scanSettings.hiddenNetworks = scanSettings.hiddenNetworks = new ArrayList<>(Arrays.asList(mHiddenNetwork1, mHiddenNetwork2)); new ArrayList<>(Arrays.asList(mHiddenNetwork1, mHiddenNetwork2)); scanSettings.enable6GhzRnr = true; scanSettings.enable6GhzRnr = true; scanSettings.vendorIes = mVendorIes; Parcel parcel = Parcel.obtain(); Parcel parcel = Parcel.obtain(); scanSettings.writeToParcel(parcel, 0); scanSettings.writeToParcel(parcel, 0); Loading @@ -98,6 +102,7 @@ public class SingleScanSettingsTest { new ArrayList<>(Arrays.asList(mChannelSettings1, mChannelSettings2)); new ArrayList<>(Arrays.asList(mChannelSettings1, mChannelSettings2)); scanSettings1.hiddenNetworks = scanSettings1.hiddenNetworks = new ArrayList<>(Arrays.asList(mHiddenNetwork1, mHiddenNetwork2)); new ArrayList<>(Arrays.asList(mHiddenNetwork1, mHiddenNetwork2)); scanSettings1.vendorIes = mVendorIes; SingleScanSettings scanSettings2 = new SingleScanSettings(); SingleScanSettings scanSettings2 = new SingleScanSettings(); scanSettings2.scanType = IWifiScannerImpl.SCAN_TYPE_HIGH_ACCURACY; scanSettings2.scanType = IWifiScannerImpl.SCAN_TYPE_HIGH_ACCURACY; Loading @@ -105,6 +110,7 @@ public class SingleScanSettingsTest { new ArrayList<>(Arrays.asList(mChannelSettings1, mChannelSettings2)); new ArrayList<>(Arrays.asList(mChannelSettings1, mChannelSettings2)); scanSettings2.hiddenNetworks = scanSettings2.hiddenNetworks = new ArrayList<>(Arrays.asList(mHiddenNetwork1, mHiddenNetwork2)); new ArrayList<>(Arrays.asList(mHiddenNetwork1, mHiddenNetwork2)); scanSettings2.vendorIes = mVendorIes; assertEquals(scanSettings1, scanSettings2); assertEquals(scanSettings1, scanSettings2); assertEquals(scanSettings1.hashCode(), scanSettings2.hashCode()); assertEquals(scanSettings1.hashCode(), scanSettings2.hashCode()); Loading
wifi/tests/src/android/net/wifi/nl80211/WifiNl80211ManagerTest.java +18 −8 Original line number Original line Diff line number Diff line Loading @@ -68,6 +68,7 @@ import java.nio.charset.CharsetDecoder; import java.nio.charset.CharsetEncoder; import java.nio.charset.CharsetEncoder; import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.HashSet; import java.util.List; import java.util.List; import java.util.Set; import java.util.Set; Loading Loading @@ -127,6 +128,9 @@ public class WifiNl80211ManagerTest { private static final String TEST_QUOTED_SSID_2 = "\"testSsid2\""; private static final String TEST_QUOTED_SSID_2 = "\"testSsid2\""; private static final int[] TEST_FREQUENCIES_1 = {}; private static final int[] TEST_FREQUENCIES_1 = {}; private static final int[] TEST_FREQUENCIES_2 = {2500, 5124}; private static final int[] TEST_FREQUENCIES_2 = {2500, 5124}; private static final byte[] TEST_VENDOR_IES = new byte[]{(byte) 0xdd, 0x7, 0x00, 0x50, (byte) 0xf2, 0x08, 0x11, 0x22, 0x33, (byte) 0xdd, 0x7, 0x00, 0x50, (byte) 0xf2, 0x08, 0x44, 0x55, 0x66}; private static final MacAddress TEST_RAW_MAC_BYTES = MacAddress.fromBytes( private static final MacAddress TEST_RAW_MAC_BYTES = MacAddress.fromBytes( new byte[]{0x00, 0x01, 0x02, 0x03, 0x04, 0x05}); new byte[]{0x00, 0x01, 0x02, 0x03, 0x04, 0x05}); Loading Loading @@ -512,7 +516,7 @@ public class WifiNl80211ManagerTest { SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST)); SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST)); verify(mWifiScannerImpl).scan(argThat(new ScanMatcher( verify(mWifiScannerImpl).scan(argThat(new ScanMatcher( IWifiScannerImpl.SCAN_TYPE_LOW_POWER, IWifiScannerImpl.SCAN_TYPE_LOW_POWER, SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, false))); SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, false, null))); } } /** /** Loading @@ -523,12 +527,13 @@ public class WifiNl80211ManagerTest { when(mWifiScannerImpl.scan(any(SingleScanSettings.class))).thenReturn(true); when(mWifiScannerImpl.scan(any(SingleScanSettings.class))).thenReturn(true); Bundle bundle = new Bundle(); Bundle bundle = new Bundle(); bundle.putBoolean(WifiNl80211Manager.SCANNING_PARAM_ENABLE_6GHZ_RNR, true); bundle.putBoolean(WifiNl80211Manager.SCANNING_PARAM_ENABLE_6GHZ_RNR, true); bundle.putByteArray(WifiNl80211Manager.EXTRA_SCANNING_PARAM_VENDOR_IES, TEST_VENDOR_IES); assertTrue(mWificondControl.startScan( assertTrue(mWificondControl.startScan( TEST_INTERFACE_NAME, WifiScanner.SCAN_TYPE_LOW_POWER, TEST_INTERFACE_NAME, WifiScanner.SCAN_TYPE_LOW_POWER, SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, bundle)); SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, bundle)); verify(mWifiScannerImpl).scan(argThat(new ScanMatcher( verify(mWifiScannerImpl).scan(argThat(new ScanMatcher( IWifiScannerImpl.SCAN_TYPE_LOW_POWER, IWifiScannerImpl.SCAN_TYPE_LOW_POWER, SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, true))); SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, true, TEST_VENDOR_IES))); } } /** /** Loading @@ -542,7 +547,7 @@ public class WifiNl80211ManagerTest { SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, null)); SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, null)); verify(mWifiScannerImpl).scan(argThat(new ScanMatcher( verify(mWifiScannerImpl).scan(argThat(new ScanMatcher( IWifiScannerImpl.SCAN_TYPE_LOW_POWER, IWifiScannerImpl.SCAN_TYPE_LOW_POWER, SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, false))); SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, false, null))); } } /** /** Loading @@ -556,7 +561,7 @@ public class WifiNl80211ManagerTest { SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, new Bundle())); SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, new Bundle())); verify(mWifiScannerImpl).scan(argThat(new ScanMatcher( verify(mWifiScannerImpl).scan(argThat(new ScanMatcher( IWifiScannerImpl.SCAN_TYPE_LOW_POWER, IWifiScannerImpl.SCAN_TYPE_LOW_POWER, SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, false))); SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, false, null))); } } /** /** Loading @@ -577,7 +582,7 @@ public class WifiNl80211ManagerTest { // But the argument passed down should have the duplicate removed. // But the argument passed down should have the duplicate removed. verify(mWifiScannerImpl).scan(argThat(new ScanMatcher( verify(mWifiScannerImpl).scan(argThat(new ScanMatcher( IWifiScannerImpl.SCAN_TYPE_LOW_POWER, IWifiScannerImpl.SCAN_TYPE_LOW_POWER, SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, false))); SCAN_FREQ_SET, SCAN_HIDDEN_NETWORK_SSID_LIST, false, null))); } } /** /** Loading @@ -589,7 +594,7 @@ public class WifiNl80211ManagerTest { assertTrue(mWificondControl.startScan( assertTrue(mWificondControl.startScan( TEST_INTERFACE_NAME, WifiScanner.SCAN_TYPE_HIGH_ACCURACY, null, null)); TEST_INTERFACE_NAME, WifiScanner.SCAN_TYPE_HIGH_ACCURACY, null, null)); verify(mWifiScannerImpl).scan(argThat(new ScanMatcher( verify(mWifiScannerImpl).scan(argThat(new ScanMatcher( IWifiScannerImpl.SCAN_TYPE_HIGH_ACCURACY, null, null, false))); IWifiScannerImpl.SCAN_TYPE_HIGH_ACCURACY, null, null, false, null))); } } /** /** Loading Loading @@ -1161,13 +1166,15 @@ public class WifiNl80211ManagerTest { private final Set<Integer> mExpectedFreqs; private final Set<Integer> mExpectedFreqs; private final List<byte[]> mExpectedSsids; private final List<byte[]> mExpectedSsids; private final boolean mExpectedEnable6GhzRnr; private final boolean mExpectedEnable6GhzRnr; private final byte[] mExpectedVendorIes; ScanMatcher(int expectedScanType, Set<Integer> expectedFreqs, List<byte[]> expectedSsids, ScanMatcher(int expectedScanType, Set<Integer> expectedFreqs, List<byte[]> expectedSsids, boolean expectedEnable6GhzRnr) { boolean expectedEnable6GhzRnr, byte[] expectedVendorIes) { this.mExpectedScanType = expectedScanType; this.mExpectedScanType = expectedScanType; this.mExpectedFreqs = expectedFreqs; this.mExpectedFreqs = expectedFreqs; this.mExpectedSsids = expectedSsids; this.mExpectedSsids = expectedSsids; this.mExpectedEnable6GhzRnr = expectedEnable6GhzRnr; this.mExpectedEnable6GhzRnr = expectedEnable6GhzRnr; this.mExpectedVendorIes = expectedVendorIes; } } @Override @Override Loading Loading @@ -1202,12 +1209,15 @@ public class WifiNl80211ManagerTest { if (!mExpectedSsids.equals(ssidSet)) { if (!mExpectedSsids.equals(ssidSet)) { return false; return false; } } } else { } else { if (hiddenNetworks != null && hiddenNetworks.size() > 0) { if (hiddenNetworks != null && hiddenNetworks.size() > 0) { return false; return false; } } } } if (!Arrays.equals(mExpectedVendorIes, settings.vendorIes)) { return false; } return true; return true; } } Loading