diff options
author | Roshan Pius <rpius@google.com> | 2016-09-12 13:41:36 -0700 |
---|---|---|
committer | Roshan Pius <rpius@google.com> | 2016-09-16 15:34:21 -0700 |
commit | 6259b630ddb59b642729a2d2113d81ed8e33a0e3 (patch) | |
tree | cf530b3b6b1ad5cf9fa62f038d95bcc6204c0df2 /service/java/com/android/server/wifi/scanner/WifiScanningServiceImpl.java | |
parent | 5c6da02cf7736d4ba9fc388151177f5277464c89 (diff) | |
download | android_frameworks_opt_net_wifi-6259b630ddb59b642729a2d2113d81ed8e33a0e3.tar.gz android_frameworks_opt_net_wifi-6259b630ddb59b642729a2d2113d81ed8e33a0e3.tar.bz2 android_frameworks_opt_net_wifi-6259b630ddb59b642729a2d2113d81ed8e33a0e3.zip |
WifiScanningService: Change hidden/PNO scan params
Since networks are no longer configured in wpa_supplicant, network
IDs/priorities being passed around for hidden/PNO scanning does not make
any sense. Changing the wifi scanner interface to remove all
network ID/priority references.
For hidden networks, we'll now send a sorted array of <ssid> for
each network (similar to PNO). This should help wificond prioritize
networks when the size exceed the max supported by driver.
Also, since wpa_supplicant already supports sending a list of ssids for
scanning, plumb it all the way through.
NOTE:
1. The backend for all these scans will eventually be replaced by
wificond.
2. Hidden networks are no longer considered in bgscan requests. This was
anyway not workin in HalWifiScanner's gscan backed bgscan.
BUG: 29503772
TEST: Existing unit tests.
TEST: Successfully connected to a hidden network on device
Change-Id: Ie7783353d2eb87c2fd7b9a10f44e3e5df4cbc218
Diffstat (limited to 'service/java/com/android/server/wifi/scanner/WifiScanningServiceImpl.java')
-rw-r--r-- | service/java/com/android/server/wifi/scanner/WifiScanningServiceImpl.java | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/service/java/com/android/server/wifi/scanner/WifiScanningServiceImpl.java b/service/java/com/android/server/wifi/scanner/WifiScanningServiceImpl.java index c505b602c..bcae0980b 100644 --- a/service/java/com/android/server/wifi/scanner/WifiScanningServiceImpl.java +++ b/service/java/com/android/server/wifi/scanner/WifiScanningServiceImpl.java @@ -67,6 +67,7 @@ import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; +import java.util.List; import java.util.Set; public class WifiScanningServiceImpl extends IWifiScanner.Stub { @@ -707,16 +708,18 @@ public class WifiScanningServiceImpl extends IWifiScanner.Stub { return false; } - if (settings.hiddenNetworkIds != null) { - if (mActiveScanSettings.hiddenNetworkIds == null) { + if (settings.hiddenNetworks != null) { + if (mActiveScanSettings.hiddenNetworks == null) { return false; } - Set<Integer> activeHiddenNetworkIds = new HashSet<>(); - for (int id : mActiveScanSettings.hiddenNetworkIds) { - activeHiddenNetworkIds.add(id); + List<WifiNative.HiddenNetwork> activeHiddenNetworks = new ArrayList<>(); + for (WifiNative.HiddenNetwork hiddenNetwork : mActiveScanSettings.hiddenNetworks) { + activeHiddenNetworks.add(hiddenNetwork); } - for (int id : settings.hiddenNetworkIds) { - if (!activeHiddenNetworkIds.contains(id)) { + for (ScanSettings.HiddenNetwork hiddenNetwork : settings.hiddenNetworks) { + WifiNative.HiddenNetwork nativeHiddenNetwork = new WifiNative.HiddenNetwork(); + nativeHiddenNetwork.ssid = hiddenNetwork.ssid; + if (!activeHiddenNetworks.contains(nativeHiddenNetwork)) { return false; } } @@ -755,12 +758,14 @@ public class WifiScanningServiceImpl extends IWifiScanner.Stub { bucketSettings.report_events = WifiScanner.REPORT_EVENT_AFTER_EACH_SCAN; ChannelCollection channels = mChannelHelper.createChannelCollection(); - HashSet<Integer> hiddenNetworkIdSet = new HashSet<>(); + List<WifiNative.HiddenNetwork> hiddenNetworkList = new ArrayList<>(); for (RequestInfo<ScanSettings> entry : mPendingScans) { channels.addChannels(entry.settings); - if (entry.settings.hiddenNetworkIds != null) { - for (int i = 0; i < entry.settings.hiddenNetworkIds.length; i++) { - hiddenNetworkIdSet.add(entry.settings.hiddenNetworkIds[i]); + if (entry.settings.hiddenNetworks != null) { + for (int i = 0; i < entry.settings.hiddenNetworks.length; i++) { + WifiNative.HiddenNetwork hiddenNetwork = new WifiNative.HiddenNetwork(); + hiddenNetwork.ssid = entry.settings.hiddenNetworks[i].ssid; + hiddenNetworkList.add(hiddenNetwork); } } if ((entry.settings.reportEvents & WifiScanner.REPORT_EVENT_FULL_SCAN_RESULT) @@ -768,11 +773,11 @@ public class WifiScanningServiceImpl extends IWifiScanner.Stub { bucketSettings.report_events |= WifiScanner.REPORT_EVENT_FULL_SCAN_RESULT; } } - if (hiddenNetworkIdSet.size() > 0) { - settings.hiddenNetworkIds = new int[hiddenNetworkIdSet.size()]; + if (hiddenNetworkList.size() > 0) { + settings.hiddenNetworks = new WifiNative.HiddenNetwork[hiddenNetworkList.size()]; int numHiddenNetworks = 0; - for (Integer hiddenNetworkId : hiddenNetworkIdSet) { - settings.hiddenNetworkIds[numHiddenNetworks++] = hiddenNetworkId; + for (WifiNative.HiddenNetwork hiddenNetwork : hiddenNetworkList) { + settings.hiddenNetworks[numHiddenNetworks++] = hiddenNetwork; } } @@ -1740,8 +1745,6 @@ public class WifiScanningServiceImpl extends IWifiScanner.Stub { for (int i = 0; i < pnoSettings.networkList.length; i++) { nativePnoSetting.networkList[i] = new WifiNative.PnoNetwork(); nativePnoSetting.networkList[i].ssid = pnoSettings.networkList[i].ssid; - nativePnoSetting.networkList[i].networkId = pnoSettings.networkList[i].networkId; - nativePnoSetting.networkList[i].priority = pnoSettings.networkList[i].priority; nativePnoSetting.networkList[i].flags = pnoSettings.networkList[i].flags; nativePnoSetting.networkList[i].auth_bit_field = pnoSettings.networkList[i].authBitField; @@ -2727,10 +2730,7 @@ public class WifiScanningServiceImpl extends IWifiScanner.Stub { .append(" networks:[ "); if (pnoSettings.networkList != null) { for (int i = 0; i < pnoSettings.networkList.length; i++) { - sb.append(pnoSettings.networkList[i].ssid) - .append(",") - .append(pnoSettings.networkList[i].networkId) - .append(" "); + sb.append(pnoSettings.networkList[i].ssid).append(","); } } sb.append(" ] ") |