public async ValueTask SetWifiEnabledAsync(bool enabled) { foreach (var iface in NativeWifi.EnumerateInterfaces()) { var radioSet = NativeWifi.GetInterfaceRadio(iface.Id)?.RadioSets.FirstOrDefault(); if (radioSet == null) { continue; } if (radioSet.HardwareOn != true) { continue; } if (enabled) { await Task.Run(() => NativeWifi.TurnOnInterfaceRadio(iface.Id)); } else { await Task.Run(() => NativeWifi.TurnOffInterfaceRadio(iface.Id)); } } }
/// <summary> /// Turns on the radio of a wireless interface which is not currently on but can be on. /// </summary> /// <returns>True if successfully turned on. False if not.</returns> public static async Task <bool> TurnOnAsync() { var targetInterface = NativeWifi.EnumerateInterfaces() .FirstOrDefault(x => { var radioSet = NativeWifi.GetInterfaceRadio(x.Id)?.RadioSets.FirstOrDefault(); if (radioSet == null) { return(false); } if (!radioSet.HardwareOn.GetValueOrDefault()) // Hardware radio state is off. { return(false); } return(radioSet.SoftwareOn == false); // Software radio state is off. }); if (targetInterface == null) { return(false); } try { return(await Task.Run(() => NativeWifi.TurnOnInterfaceRadio(targetInterface.Id))); } catch (UnauthorizedAccessException) { return(false); } }
public override void ConnectTrueWifi() { connectionStateCallBack.StateChange("连接正确WIFI..."); // 打开WLAN NativeWifi.TurnOnInterfaceRadio(NativeWifi.EnumerateInterfaces().FirstOrDefault().Id); while (true) { // 找到 WIFI var a = NativeWifi.EnumerateAvailableNetworks() .Where(x => !string.IsNullOrWhiteSpace(x.ProfileName)) .OrderByDescending(x => x.SignalQuality) .Where(x => x.Ssid.ToString().Equals("HXGNET")) .FirstOrDefault(); if (a == null) { connectionStateCallBack.StateChange("等待WIFI..."); Thread.Sleep(500); continue; } // 连接 NativeWifi.ConnectNetwork(a.Interface.Id, a.ProfileName, a.BssType); connectionStateCallBack.StateChange("已连接WIFI..."); break; } }
private static void TurnOn() { foreach (var interfaceInfo in NativeWifi.EnumerateInterfaces()) { Trace.WriteLine($"Interface: {interfaceInfo.Description} ({interfaceInfo.Id})"); try { Trace.WriteLine($"Turn on: {NativeWifi.TurnOnInterfaceRadio(interfaceInfo.Id)}"); } catch (UnauthorizedAccessException) { Trace.WriteLine("Turn on: Unauthorized"); } } }