Example #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();
                    }
                }
Example #2
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);
        }
        public override void OnReceive(Context context, Intent intent)
        {
            try
            {
                Wifi     = (WifiManager)context.GetSystemService(Context.WifiService);
                CManager = (ConnectivityManager)context.GetSystemService(Context.ConnectivityService);

                if (!Wifi.IsWifiEnabled)
                {
                    Wifi.SetWifiEnabled(true);

                    MainActivity.MakeText("WIFI IS OFF", true);
                }

                if (string.IsNullOrWhiteSpace(ConnectedSSID) || ConnectedSSID == "<unknown ssid>")
                {
                    MainActivity.MakeText("WIFI NOT CONNECTED", true);

                    var networkInfo = CManager.ActiveNetworkInfo;

                    if (networkInfo == null || !networkInfo.IsConnectedOrConnecting)
                    {
                        var prefs = context.GetSharedPreferences("Wifiautoconnect", FileCreationMode.Private);

                        var ssid = prefs.GetString("network", "");
                        var pass = prefs.GetString("password", "");

                        if (ssid.Trim().Length > 0)
                        {
                            var NetworkConfig = Wifi.ConfiguredNetworks.Where(n => n.Ssid != null && (n.Ssid == ssid || n.Ssid == "\"" + ssid + "\"")).FirstOrDefault();

                            if (NetworkConfig == null)
                            {
                                NetworkConfig = new WifiConfiguration()
                                {
                                    Ssid         = "\"" + ssid + "\"",
                                    StatusField  = WifiStatus.Enabled,
                                    Priority     = Wifi.ConfiguredNetworks.Max(n => n.Priority) + 1,
                                    PreSharedKey = "\"" + pass + "\""
                                };
                                NetworkConfig.AllowedKeyManagement.Set((int)KeyManagementType.WpaPsk);
                                NetworkConfig.NetworkId = Wifi.AddNetwork(NetworkConfig);

                                Wifi.SaveConfiguration();
                            }

                            if (Wifi.EnableNetwork(NetworkConfig.NetworkId, true))
                            {
                                MainActivity.MakeText("WIFI CONNECTED", true);
                            }
                        }
                    }
                }
                else
                {
                    MainActivity.MakeText("CON SSID: " + ConnectedSSID, false);
                }
            }
            catch (Exception ex)
            {
                MainActivity.MakeText("ERROR WIFI: " + ex.Message + " " + (ex.StackTrace ?? ""), false);
            }
        }