Merge "Fix can't share WEP Wi-Fi network via Wi-Fi QR code generator" into qt-dev

am: 982e46fe6c

Change-Id: I6b4b4e594bd1e62fb1bd927dd2e399838aca4a49
This commit is contained in:
Arc Wang
2019-04-11 19:41:13 -07:00
committed by android-build-merger

View File

@@ -128,18 +128,26 @@ public class WifiDppUtils {
return intent; return intent;
} }
private static String getPresharedKey(WifiManager wifiManager, WifiConfiguration config) { private static String getPresharedKey(WifiManager wifiManager,
String preSharedKey = config.preSharedKey; WifiConfiguration wifiConfiguration) {
final List<WifiConfiguration> privilegedWifiConfiguratios =
wifiManager.getPrivilegedConfiguredNetworks();
final List<WifiConfiguration> wifiConfigs = wifiManager.getPrivilegedConfiguredNetworks(); for (WifiConfiguration privilegedWifiConfiguration : privilegedWifiConfiguratios) {
for (WifiConfiguration wifiConfig : wifiConfigs) { if (privilegedWifiConfiguration.networkId == wifiConfiguration.networkId) {
if (wifiConfig.networkId == config.networkId) { // WEP uses a shared key hence the AuthAlgorithm.SHARED is used
preSharedKey = wifiConfig.preSharedKey; // to identify it.
break; if (wifiConfiguration.allowedKeyManagement.get(KeyMgmt.NONE)
&& wifiConfiguration.allowedAuthAlgorithms.get(
WifiConfiguration.AuthAlgorithm.SHARED)) {
return privilegedWifiConfiguration
.wepKeys[privilegedWifiConfiguration.wepTxKeyIndex];
} else {
return privilegedWifiConfiguration.preSharedKey;
}
} }
} }
return wifiConfiguration.preSharedKey;
return preSharedKey;
} }
private static String removeFirstAndLastDoubleQuotes(String str) { private static String removeFirstAndLastDoubleQuotes(String str) {
@@ -268,14 +276,11 @@ public class WifiDppUtils {
WifiConfiguration wifiConfiguration) { WifiConfiguration wifiConfiguration) {
final String ssid = removeFirstAndLastDoubleQuotes(wifiConfiguration.SSID); final String ssid = removeFirstAndLastDoubleQuotes(wifiConfiguration.SSID);
final String security = getSecurityString(wifiConfiguration); final String security = getSecurityString(wifiConfiguration);
String preSharedKey = wifiConfiguration.preSharedKey;
if (preSharedKey != null) { // When the value of this key is read, the actual key is not returned, just a "*".
// When the value of this key is read, the actual key is not returned, just a "*". // Call privileged system API to obtain actual key.
// Call privileged system API to obtain actual key. final String preSharedKey = removeFirstAndLastDoubleQuotes(getPresharedKey(wifiManager,
preSharedKey = removeFirstAndLastDoubleQuotes(getPresharedKey(wifiManager, wifiConfiguration));
wifiConfiguration));
}
if (!TextUtils.isEmpty(ssid)) { if (!TextUtils.isEmpty(ssid)) {
intent.putExtra(EXTRA_WIFI_SSID, ssid); intent.putExtra(EXTRA_WIFI_SSID, ssid);