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(); } }
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); } }