Fix can't share WEP Wi-Fi network via Wi-Fi QR code generator
For a WEP Wi-Fi network, we should get the password from WifiConfiguration#wepKeys instead of WifiConfiguration#preSharedKey. Bug: 130204717 Test: manual Change-Id: I766a767f3d605c7fbf0b71d263fd111f159c7cde
This commit is contained in:
@@ -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 preSharedKey;
|
return wifiConfiguration.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.
|
||||||
preSharedKey = removeFirstAndLastDoubleQuotes(getPresharedKey(wifiManager,
|
final String 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);
|
||||||
|
Reference in New Issue
Block a user