示例#1
0
        private void Inte_WlanNotification(WlanNotificationData notifyData)
        {
            var listofPoints = GetAccessPoints();

            currentState = new WifiState();
            foreach (var network in listofPoints)
            {
                var networkInterface = _client.Interfaces.Where(i => i.CurrentConnection.profileName == network.profileName).FirstOrDefault();
                if (networkInterface != null)
                {
                    currentState.SSID       = Encoding.ASCII.GetString(network.dot11Ssid.SSID, 0, (int)network.dot11Ssid.SSIDLength);
                    currentState.IsInsecure = !network.securityEnabled;
                    for (int i = 0; i < _client.Interfaces.Length; i++)
                    {
                        var interf = _client.Interfaces[i];
                        if (interf.InterfaceGuid == notifyData.interfaceGuid)
                        {
                            currentState.InterfaceName  = interf.InterfaceName;
                            currentState.InterfaceIndex = i;
                        }
                    }
                }
            }

            WifiStateChanged.Invoke(this.CurrentState);
        }
示例#2
0
 private void NetworkAvailabilityChanged(object sender, NetworkAvailabilityEventArgs e)
 {
     WifiStateChanged?.Invoke(this, new WifiStateChangedArguments { EventType = e.IsAvailable ? WifiEventType.Connected : WifiEventType.Disconnected });
 }