Support to share Wi-Fi hotspot via QR code

1. QR code scanner (Wi-Fi Easy Connect) does not support sharing Wi-Fi hotspot
   at current stage
2. Wi-Fi hotspot QR code button only shows when Wi-Fi hotspot is enabled
3. The QR code has the security string "WPA" for hotspot's WPA2_PSK

Bug: 123151660
Test: atest WifiTetherSSIDPreferenceControllerTest
            WifiQrCodeTest WifiDppConfiguratorActivityTest
            WifiDppEnrolleeActivityTest
            WifiDppQrCodeGeneratorFragmentTest
            WifiDppQrCodeScannerFragmentTest
            WifiNetworkListFragmentTest
            WifiDppChooseSavedWifiNetworkFragmentTest

Change-Id: I2e89450180b82cc841ee3b15be52bfc6f9f6164d
This commit is contained in:
Arc Wang
2019-03-04 17:20:41 +08:00
parent 131eeac4aa
commit b249fb7d13
13 changed files with 361 additions and 102 deletions

View File

@@ -75,6 +75,7 @@ public class WifiDppConfiguratorActivity extends InstrumentedActivity implements
private static final String KEY_WIFI_PRESHARED_KEY = "key_wifi_preshared_key";
private static final String KEY_WIFI_HIDDEN_SSID = "key_wifi_hidden_ssid";
private static final String KEY_WIFI_NETWORK_ID = "key_wifi_network_id";
private static final String KEY_IS_HOTSPOT = "key_is_hotspot";
private FragmentManager mFragmentManager;
@@ -104,14 +105,15 @@ public class WifiDppConfiguratorActivity extends InstrumentedActivity implements
mWifiDppQrCode = WifiQrCode.getValidWifiDppQrCodeOrNull(qrCode);
String security = savedInstanceState.getString(KEY_WIFI_SECURITY);
String ssid = savedInstanceState.getString(KEY_WIFI_SSID);
String preSharedKey = savedInstanceState.getString(KEY_WIFI_PRESHARED_KEY);
boolean hiddenSsid = savedInstanceState.getBoolean(KEY_WIFI_HIDDEN_SSID);
int networkId = savedInstanceState.getInt(KEY_WIFI_NETWORK_ID);
final String security = savedInstanceState.getString(KEY_WIFI_SECURITY);
final String ssid = savedInstanceState.getString(KEY_WIFI_SSID);
final String preSharedKey = savedInstanceState.getString(KEY_WIFI_PRESHARED_KEY);
final boolean hiddenSsid = savedInstanceState.getBoolean(KEY_WIFI_HIDDEN_SSID);
final int networkId = savedInstanceState.getInt(KEY_WIFI_NETWORK_ID);
final boolean isHotspot = savedInstanceState.getBoolean(KEY_IS_HOTSPOT);
mWifiNetworkConfig = WifiNetworkConfig.getValidConfigOrNull(security, ssid,
preSharedKey, hiddenSsid, networkId);
preSharedKey, hiddenSsid, networkId, isHotspot);
} else {
handleIntent(getIntent());
}
@@ -361,6 +363,7 @@ public class WifiDppConfiguratorActivity extends InstrumentedActivity implements
outState.putString(KEY_WIFI_PRESHARED_KEY, mWifiNetworkConfig.getPreSharedKey());
outState.putBoolean(KEY_WIFI_HIDDEN_SSID, mWifiNetworkConfig.getHiddenSsid());
outState.putInt(KEY_WIFI_NETWORK_ID, mWifiNetworkConfig.getNetworkId());
outState.putBoolean(KEY_IS_HOTSPOT, mWifiNetworkConfig.isHotspot());
}
super.onSaveInstanceState(outState);
@@ -393,7 +396,8 @@ public class WifiDppConfiguratorActivity extends InstrumentedActivity implements
wifiConfiguration.getPrintableSsid(),
wifiConfiguration.preSharedKey,
/* hiddenSsid */ false,
wifiConfiguration.networkId);
wifiConfiguration.networkId,
/* isHotspot */ false);
}
}