Beispiel #1
0
        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
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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;
            }
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
            }
        }