Ejemplo n.º 1
0
                public static void ConnectToNework(string SSID, string Key)
                {
                    var WifiConfig = new WifiConfiguration();

                    WifiConfig.Ssid         = string.Format("\"{0}\"", SSID);
                    WifiConfig.PreSharedKey = string.Format("\"{0}\"", Key);

                    ToggleWiFi(true);

                    int NetID;
                    var Network = WifiMan.ConfiguredNetworks.FirstOrDefault(cn => cn.Ssid == SSID);

                    if (Network != null)
                    {
                        NetID = Network.NetworkId;
                    }
                    else
                    {
                        NetID = WifiMan.AddNetwork(WifiConfig);

                        WifiMan.SaveConfiguration();
                    }

                    WifiMan.UpdateNetwork(WifiConfig);

                    var CurrCon = WifiMan.ConnectionInfo;

                    if (CurrCon != null && CurrCon.NetworkId != NetID)
                    {
                        WifiMan.Disconnect();
                        WifiMan.EnableNetwork(NetID, true);
                        WifiMan.Reconnect();
                    }
                }
Ejemplo n.º 2
0
        public async Task <bool> ConnectToWifiNetwork(string ssid, string passphrase)
        {
            WifiConfiguration wifiConfig = new WifiConfiguration();

            wifiConfig.Ssid         = string.Format("\"{0}\"", ssid);
            wifiConfig.PreSharedKey = string.Format("\"{0}\"", passphrase);

            // Use ID
            var existing = wifiManager.ConfiguredNetworks.FirstOrDefault(i => i.Ssid == wifiConfig.Ssid);
            int netId    = -1;

            if (existing != null)
            {
                netId = existing.NetworkId;
                wifiManager.UpdateNetwork(wifiConfig);
            }
            else
            {
                netId = wifiManager.AddNetwork(wifiConfig);
            }

            return(await Connect(netId, wifiConfig.Ssid));
        }
Ejemplo n.º 3
0
        public void ConnectToAccessPoint(string ssid, string password)
        {
            int netId = -1;

            var wifi = new WifiConfiguration
            {
                Ssid         = $"\"{ssid}\"",
                PreSharedKey = $"\"{password}\"",
            };

            netId = _manager.ConfiguredNetworks.FirstOrDefault(x => x.Ssid == ssid) != null
                            ? _manager.UpdateNetwork(wifi)
                            : _manager.AddNetwork(wifi);

            _currentNetId = netId;
            _current      = wifi;

            _manager.Disconnect();
            _manager.EnableNetwork(netId, true);
            _manager.Reconnect();

            StartWifiCheckingTimer();
        }
Ejemplo n.º 4
0
        public override async Task <bool> Connect(string essid, string passphrase)
        {
            OnStatusUpdated("Enabling WiFi");
            await EnableWifi();

            OnStatusUpdated("Connecting to WiFi");
            // create configuration parameter
            var conf = new WifiConfiguration();

            conf.Ssid         = $"\"{essid}\"";
            conf.PreSharedKey = $"\"{passphrase}\"";
            conf.AllowedProtocols.Set((int)ProtocolType.Rsn);
            conf.AllowedProtocols.Set((int)ProtocolType.Wpa);
            conf.AllowedKeyManagement.Set((int)KeyManagementType.WpaPsk);
            conf.AllowedPairwiseCiphers.Set((int)PairwiseCipherType.Ccmp);
            conf.AllowedPairwiseCiphers.Set((int)PairwiseCipherType.Tkip);
            conf.AllowedGroupCiphers.Set((int)GroupCipherType.Wep40);
            conf.AllowedGroupCiphers.Set((int)GroupCipherType.Wep104);
            conf.AllowedGroupCiphers.Set((int)GroupCipherType.Ccmp);
            conf.AllowedGroupCiphers.Set((int)GroupCipherType.Tkip);
            _manager.AddNetwork(conf);
            _manager.SaveConfiguration();
            _manager.UpdateNetwork(conf);
            // try connect
            var network = _manager.ConfiguredNetworks.FirstOrDefault(i => i.Ssid == conf.Ssid);

            _manager.Disconnect();
            await Task.Delay(333);

            _manager.EnableNetwork(network.NetworkId, true);
            // wait for connection
            OnStatusUpdated("Waiting for connection");
            await WaitForWifiEstablished(conf.Ssid);

            return(true);
        }
Ejemplo n.º 5
0
        public ConnectionState ConnectTo(string ssid, string key)
        {
            if (ConnectionCooldown > DateTime.Now)
            {
                return(State);
            }
            ConnectionCooldown = DateTime.Now.AddSeconds(10);

            //TODO: testar esse if
            if (WifiManager.IsWifiEnabled == false)
            {
                WifiManager.SetWifiEnabled(true);
            }

            while (WifiManager.IsWifiEnabled == false)
            {
            }

            WifiInfo wifiInfo = WifiManager.ConnectionInfo;

            if (wifiInfo.SupplicantState == SupplicantState.Completed)
            {
                if (wifiInfo.SSID == quoted(ssid))
                {
                    State = ConnectionState.connected;
                    return(State);
                }
            }

            int highestPriorityNumber        = 0;
            WifiConfiguration selectedConfig = null;

            /* Check if not connected but has connected to that wifi in the past */
            foreach (WifiConfiguration config in WifiManager.ConfiguredNetworks)
            {
                if (config.Priority > highestPriorityNumber)
                {
                    highestPriorityNumber = config.Priority;
                }
                if (config.Ssid == quoted(ssid))
                {
                    selectedConfig = config;
                }
            }

            State = ConnectionState.connecting;

            if (selectedConfig != null)
            {
                selectedConfig.Priority = highestPriorityNumber + 1;
                WifiManager.UpdateNetwork(selectedConfig);
                WifiManager.Disconnect(); /* disconnect from whichever wifi you're connected to */
                WifiManager.EnableNetwork(selectedConfig.NetworkId, true);
                WifiManager.Reconnect();

                return(State);
            }

            selectedConfig             = new WifiConfiguration();
            selectedConfig.Ssid        = quoted(ssid);
            selectedConfig.Priority    = highestPriorityNumber + 1;
            selectedConfig.StatusField = Android.Net.Wifi.WifiStatus.Enabled;

            selectedConfig.PreSharedKey = quoted(key);
            selectedConfig.AllowedKeyManagement.Set((int)Android.Net.Wifi.KeyManagementType.WpaPsk);
            selectedConfig.AllowedGroupCiphers.Set((int)Android.Net.Wifi.GroupCipherType.Tkip);
            selectedConfig.AllowedGroupCiphers.Set((int)Android.Net.Wifi.GroupCipherType.Ccmp);
            selectedConfig.AllowedPairwiseCiphers.Set((int)Android.Net.Wifi.PairwiseCipherType.Tkip);
            selectedConfig.AllowedPairwiseCiphers.Set((int)Android.Net.Wifi.PairwiseCipherType.Ccmp);
            selectedConfig.AllowedProtocols.Set((int)Android.Net.Wifi.ProtocolType.Rsn);
            selectedConfig.AllowedProtocols.Set((int)Android.Net.Wifi.ProtocolType.Wpa);


            int netId = WifiManager.AddNetwork(selectedConfig);

            WifiManager.Disconnect(); /* disconnect from whichever wifi you're connected to */
            WifiManager.EnableNetwork(netId, true);
            WifiManager.Reconnect();  // todo?

            return(State);
            //WifiConfiguration conf = new WifiConfiguration();
            //conf.Ssid = "\"" + networkSSID + "\"";
            //conf.PreSharedKey = "\"" + networkPass + "\"";

            //WifiManager.Disconnect();
            //var id = WifiManager.AddNetwork(conf);
            //WifiManager.EnableNetwork(id, true);
            //WifiManager.Reconnect();


            //var aa = WifiManager.ConfiguredNetworks.Select(f => f.Ssid);

            //IEnumerable<WifiConfiguration> list = WifiManager.ConfiguredNetworks;
            //foreach (WifiConfiguration i in list)
            //{
            //    if (i.Ssid != null && i.Ssid.Equals("\"" + networkSSID + "\""))
            //    {
            //        WifiManager.Disconnect();
            //        WifiManager.EnableNetwork(i.NetworkId, true);
            //        WifiManager.Reconnect();

            //        break;
            //    }
            //}


            //WifiConfiguration wfc = new WifiConfiguration();

            //wfc.Ssid = ssid;
            //wfc.StatusField = Android.Net.Wifi.WifiStatus.Disabled;


            //wfc.AllowedProtocols.Set((int)Android.Net.Wifi.ProtocolType.Rsn);
            //wfc.AllowedProtocols.Set((int)Android.Net.Wifi.ProtocolType.Wpa);
            //wfc.AllowedKeyManagement.Set((int)Android.Net.Wifi.KeyManagementType.WpaPsk);
            //wfc.AllowedPairwiseCiphers.Set((int)Android.Net.Wifi.PairwiseCipherType.Ccmp);
            //wfc.AllowedPairwiseCiphers.Set((int)Android.Net.Wifi.PairwiseCipherType.Tkip);
            //wfc.AllowedGroupCiphers.Set((int)Android.Net.Wifi.GroupCipherType.Wep40);
            //wfc.AllowedGroupCiphers.Set((int)Android.Net.Wifi.GroupCipherType.Wep104);
            //wfc.AllowedGroupCiphers.Set((int)Android.Net.Wifi.GroupCipherType.Ccmp);
            //wfc.AllowedGroupCiphers.Set((int)Android.Net.Wifi.GroupCipherType.Tkip);

            //wfc.PreSharedKey = password;



            //wfc.Priority = 10000;
            //WifiManager.Disconnect();

            //int networkId = WifiManager.AddNetwork(wfc);

            //var id = WifiManager.UpdateNetwork(wfc);
            //WifiManager.SaveConfiguration();
            //WifiManager.EnableNetwork(id, false);
            //WifiManager.Reconnect();



            //var aa = WifiManager.ConfiguredNetworks.Select(f => f.Ssid);
            //if (networkId != -1)
            //{
            //    //WifiManager.Disconnect();
            //    //// success, can call wfMgr.enableNetwork(networkId, true) to connect
            //    //WifiManager.EnableNetwork(networkId, true);

            //    //WifiManager.Reconnect();

            //}
        }