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