diff options
author | Xiao Ma <xiaom@google.com> | 2020-02-17 00:16:43 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-02-17 00:16:43 +0000 |
commit | 709067f2004ef9e01cd42bddd69b1d67b6f7b0f6 (patch) | |
tree | 16e8ccca9eb2a4de0ad76f0f0fab478cb8bbabb8 /service | |
parent | 8cbb4e259077758b37b7736036e06f1fdc1d7c8c (diff) | |
parent | 1c3266711b041eb097d0341b94542fc0695cd22b (diff) |
Merge "Add ScanResultInfo in the ProvisioningConfiguration parcelable."
Diffstat (limited to 'service')
-rw-r--r-- | service/java/com/android/server/wifi/ClientModeImpl.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/service/java/com/android/server/wifi/ClientModeImpl.java b/service/java/com/android/server/wifi/ClientModeImpl.java index 145335e16..4b3732f22 100644 --- a/service/java/com/android/server/wifi/ClientModeImpl.java +++ b/service/java/com/android/server/wifi/ClientModeImpl.java @@ -60,6 +60,7 @@ import android.net.ip.IpClientCallbacks; import android.net.ip.IpClientManager; import android.net.shared.Inet4AddressUtils; import android.net.shared.ProvisioningConfiguration; +import android.net.shared.ProvisioningConfiguration.ScanResultInfo; import android.net.util.NetUtils; import android.net.wifi.IActionListener; import android.net.wifi.INetworkRequestMatchCallback; @@ -4855,13 +4856,35 @@ public class ClientModeImpl extends StateMachine { R.string.config_wifi_tcp_buffers)); } } + + WifiConfiguration config = getCurrentWifiConfiguration(); + ScanDetailCache scanDetailCache = + mWifiConfigManager.getScanDetailCacheForNetwork(config.networkId); + ScanResult scanResult = null; + if (scanDetailCache != null && mLastBssid != null) { + scanResult = scanDetailCache.getScanResult(mLastBssid); + } + final ProvisioningConfiguration prov; + ProvisioningConfiguration.ScanResultInfo scanResultInfo = null; + if (scanResult != null) { + final List<ScanResultInfo.InformationElement> ies = + new ArrayList<ScanResultInfo.InformationElement>(); + for (ScanResult.InformationElement ie : scanResult.getInformationElements()) { + ScanResultInfo.InformationElement scanResultInfoIe = + new ScanResultInfo.InformationElement(ie.getId(), ie.getBytes()); + ies.add(scanResultInfoIe); + } + scanResultInfo = new ProvisioningConfiguration.ScanResultInfo(scanResult.SSID, ies); + } + if (!isUsingStaticIp) { prov = new ProvisioningConfiguration.Builder() .withPreDhcpAction() .withApfCapabilities(mWifiNative.getApfCapabilities(mInterfaceName)) .withNetwork(getCurrentNetwork()) .withDisplayName(currentConfig.SSID) + .withScanResultInfo(scanResultInfo) .build(); } else { StaticIpConfiguration staticIpConfig = currentConfig.getStaticIpConfiguration(); |