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