private async void Connect(WifiSpot wifi) { PopupRing.Visibility = Visibility.Visible; bool result = await ConnectionStatus.ConnectToWifi(wifi); if (!result) { MessageDialog msg = new MessageDialog("Failed to connect"); await msg.ShowAsync(); PopupRing.Visibility = Visibility.Collapsed; return; } PopupRing.Visibility = Visibility.Collapsed; if (result) { //Save the wifispot if (knownWifi == null) { knownWifi = new List <WifiSpot>(); } knownWifi.Add(wifi); //WrittingReading.Serialize(knownWifi, FilePath); GotoNextPage();//TODO goto next page } }
private void CheckPassword() { password = PswBox.Text; if (password == string.Empty) { return; } PopupPassword.IsOpen = false; ValidateWifiButton.IsEnabled = false; WifiSpot spot = (list.SelectedItem as WifiSpot); spot.Psw = password; Connect(spot); }
private void ValidateWifiButton_Click(object sender, RoutedEventArgs e) { PopupPassword.Width = this.ActualWidth; PopupPassword.VerticalOffset = 150; WifiSpot wifi = list.SelectedItem as WifiSpot; if (wifi.PswNeeded == false) { Connect(wifi); } else { PopupPassword.IsOpen = true; } }
public async static Task <ObservableCollection <WifiSpot> > GetAvailableNetwork() { ObservableCollection <WifiSpot> list = new ObservableCollection <WifiSpot>(); try { var access = await WiFiAdapter.RequestAccessAsync(); WiFiAdapter firstAdapter; switch (access) { case WiFiAccessStatus.DeniedBySystem: Debug.WriteLine("[WIFI]: System blocking"); return(null); case WiFiAccessStatus.DeniedByUser: Debug.WriteLine("[WIFI]: User blocking"); return(null); case WiFiAccessStatus.Unspecified: Debug.WriteLine("[WIFI]: Unknow error"); return(null); default: break; } var result = await Windows.Devices.Enumeration.DeviceInformation.FindAllAsync(WiFiAdapter.GetDeviceSelector()); if (result.Count <= 0) { return(null); } firstAdapter = await WiFiAdapter.FromIdAsync(result[0].Id); await firstAdapter.ScanAsync(); var report = firstAdapter.NetworkReport; bool ispresent = false; foreach (var network in report.AvailableNetworks) { ispresent = false; foreach (WifiSpot item in list) { if (item.SSID == network.Ssid) { ispresent = true; } } if (!ispresent) { WifiSpot wifi = new WifiSpot(); wifi.MAC = network.Bssid; wifi.SignalStrength = network.ChannelCenterFrequencyInKilohertz; wifi.SignalBar = network.SignalBars; wifi.SSID = network.Ssid; if (network.SecuritySettings.NetworkAuthenticationType == NetworkAuthenticationType.None || network.SecuritySettings.NetworkAuthenticationType == NetworkAuthenticationType.Open80211) { wifi.PswNeeded = false; } else { wifi.PswNeeded = true; } list.Add(wifi); } } } catch (Exception e) { e.ToString(); Debug.WriteLine("[Get WIFI List]: ERROR"); } return(list); }
public async static Task <bool> ConnectToWifi(WifiSpot wifi) { IsConnected = false; if (wifi == null) { return(false); } try { Debug.WriteLine("Connecting to : " + wifi.SSID); var access = await WiFiAdapter.RequestAccessAsync(); WiFiAdapter firstAdapter; switch (access) { case WiFiAccessStatus.DeniedBySystem: Debug.WriteLine("[WIFI]: System blocking"); return(false); case WiFiAccessStatus.DeniedByUser: Debug.WriteLine("[WIFI]: User blocking"); return(false); case WiFiAccessStatus.Unspecified: Debug.WriteLine("[WIFI]: Unknow error"); return(false); default: break; } var result = await Windows.Devices.Enumeration.DeviceInformation.FindAllAsync(WiFiAdapter.GetDeviceSelector()); if (result.Count <= 0) { return(false); } firstAdapter = await WiFiAdapter.FromIdAsync(result[0].Id); await firstAdapter.ScanAsync(); var report = firstAdapter.NetworkReport; foreach (var i in report.AvailableNetworks) { Debug.WriteLine(i.Ssid); } foreach (var network in report.AvailableNetworks) { if (network.Ssid.Contains(wifi.SSID)) { WiFiConnectionResult connectionResult = null; if (wifi.PswNeeded) { try { PasswordCredential pass = new PasswordCredential(); pass.Password = wifi.Psw; connectionResult = await firstAdapter.ConnectAsync(network, WiFiReconnectionKind.Automatic, pass); } catch (Exception e) { Debug.WriteLine(e.ToString()); } } else { connectionResult = await firstAdapter.ConnectAsync(network, WiFiReconnectionKind.Automatic); } if (connectionResult.ConnectionStatus == WiFiConnectionStatus.Success) { IsConnected = true; } else { IsConnected = false; } return(IsConnected); } } return(false); } catch (Exception e) { Debug.WriteLine("[WIFI ERROR]: exception : " + e.ToString()); return(false); } }