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 ValueTask <bool?> GetWifiEnabledAsync() { var targetInterface = NativeWifi.EnumerateInterfaces().FirstOrDefault(); if (targetInterface == null) { return(new ValueTask <bool?>((bool?)null)); } var radioSet = NativeWifi.GetInterfaceRadio(targetInterface.Id)?.RadioSets.FirstOrDefault(); return(new ValueTask <bool?>(radioSet?.SoftwareOn)); }
private static void ShowRadioInformation() { foreach (var interfaceInfo in NativeWifi.EnumerateInterfaces()) { Trace.WriteLine($"Interface: {interfaceInfo.Description} ({interfaceInfo.Id})"); var interfaceRadio = NativeWifi.GetInterfaceRadio(interfaceInfo.Id); if (interfaceRadio is null) { continue; } foreach (var radioSet in interfaceRadio.RadioSets) { Trace.WriteLine($"Type: {radioSet.Type}"); Trace.WriteLine($"HardwareOn: {radioSet.HardwareOn}, SoftwareOn: {radioSet.SoftwareOn}, On: {radioSet.On}"); } } }