Esempio n. 1
0
        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));
                }
            }
        }
Esempio n. 2
0
        /// <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);
            }
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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}");
                }
            }
        }