Exemplo n.º 1
0
        public IEnumerable <WiFiNetworkInfo> GetWifiNetworks()
        {
            List <WiFiNetworkInfo> ret = new List <WiFiNetworkInfo>();

            if (__Interface == null)
            {
                return(ret);
            }
            
 CWNetwork[] networks = __Interface.CachedScanResults;

            if (networks != null)
            {
                foreach (CWNetwork net in networks)
                {
                    try
                    {
                        var network = new WiFiNetwork(net.Ssid);
                        ret.Add(new WiFiNetworkInfo(network));
                    }
                    catch (Exception ex)
                    {
                        Logging.Info($"Inrernal ERROR parsing info about WiFi networks '{ex.Message}' : {ex}");
                    }
                }
            }
            

            return(ret);
        }
Exemplo n.º 2
0
        public List <WiFiNetwork> UpdateNetworks()
        {
            var wifiList = new List <WiFiNetwork>();
            var client   = new WlanClient();

            foreach (var wlanIface in client.Interfaces)
            {
                var wlanBssEntries = wlanIface.GetAvailableNetworkList(0);
                var macIndex       = 0;
                foreach (var network in wlanBssEntries)
                {
                    var wifi = new WiFiNetwork();
                    wifi.Name = Encoding.ASCII.GetString(network.dot11Ssid.SSID);
                    wifi.ConnectionQuality  = network.wlanSignalQuality.ToString() + "%";
                    wifi.AuthenticationType = network.dot11DefaultAuthAlgorithm.ToString();
                    if (wifiList.Contains(wifi))
                    {
                        continue;
                    }
                    try
                    {
                        wifi.MAC = wlanIface.GetNetworkBssList()[macIndex].dot11Bssid.Select(b => b.ToString("x2")).Aggregate((cur, next) => cur + ':' + next);//.Trim((char)0);
                    } catch { break; }
                    wifi.Connected = network.flags.HasFlag(Wlan.WlanAvailableNetworkFlags.Connected);
                    wifiList.Add(wifi);
                    macIndex++;
                }
            }
            return(Networks = wifiList);
        }
            public override void OnReceive(Context context, Intent intent)
            {
                // if wifi has been disabled then don't retrieve the results
                WifiManager wifi = (WifiManager)context.GetSystemService(Context.WifiService);

                if (!wifi.IsWifiEnabled)
                {
                    return;
                }

                var scanWiFiNetworks = wifi.ScanResults;

                foreach (ScanResult wifinetwork in scanWiFiNetworks)
                {
                    var network = new WiFiNetwork()
                    {
                        BSSID        = wifinetwork.Bssid,
                        SSID         = wifinetwork.Ssid,
                        Frequency    = wifinetwork.Frequency,
                        Capabilities = wifinetwork.Capabilities,
                        //TimeStamp = DateTimeOffset.FromFileTime(wifinetwork.Timestamp)
                        TimeStamp = DateTimeOffset.Now,
                        Location  = wiFiLocation,
                        Address   = wiFiAddress
                    };

                    // calculate the signal
                    int level          = WifiManager.CalculateSignalLevel(wifi.ConnectionInfo.Rssi, wifinetwork.Level);
                    int difference     = level * 100 / wifinetwork.Level;
                    int signalStrength = 0;

                    if (difference >= 100)
                    {
                        network.SignalStrength = 4;
                    }
                    else if (difference >= 75)
                    {
                        network.SignalStrength = 3;
                    }
                    else if (difference >= 50)
                    {
                        network.SignalStrength = 2;
                    }
                    else if (difference >= 25)
                    {
                        network.SignalStrength = 1;
                    }

                    if (!wiFiNetworks.Exists(n => n.SSID == network.SSID && n.BSSID == network.BSSID))
                    {
                        wiFiNetworks.Add(network);
                    }
                }

                thisActivity.UpdateList();
            }
Exemplo n.º 4
0
 public static void MyClassInitialize(TestContext testContext)
 {
     var net = new WiFiNetwork("a", 55);
     _sessionFactory = NHibernateHelper.CreateSessionFactory();
     networks = new List<WiFiNetwork>();
     networks.Add(new WiFiNetwork("topolino", 11));
     networks.Add(new WiFiNetwork("gino", 44));
     networks.Add(net);
     netlist.Add(new WiFiNetworkSet(networks));
     connectednetworks = new List<WiFiNetwork>();
     connectednetworks.Add(net);
     connlist.Add(new WiFiNetworkSet(connectednetworks));
 }
Exemplo n.º 5
0
        private async void ConnectToWifi(WiFiNetwork network, PasswordCredential credential = null)
        {
            var didConnect = credential == null?
                             WiFiNetworks.Instance.ConnectToNetwork(network.WiFiAvailableNetwork, network.ConnectAutomatically) :
                                 WiFiNetworks.Instance.ConnectToNetworkWithPassword(network.WiFiAvailableNetwork, network.ConnectAutomatically, credential);

            Core.PlatformSupport.Services.DispatcherServices.Invoke(() =>
            {
                SelectedNetwork.State = WIFI_Connecting_State;
            });

            var connected = await didConnect;

            Core.PlatformSupport.Services.DispatcherServices.Invoke(async() =>
            {
                SelectedNetwork.State = WIFI_Initial_State;
                await SetupWifi();
            });
        }
Exemplo n.º 6
0
        private void UpdateWiFiState()
        {
            lock (__InsecureLock)
            {
                try
                {
                    var  network           = new WiFiNetwork(__Interface.Ssid);
                    bool isInsecureNetwork = (int)__Interface.InterfaceState == 4 /* kCWInterfaceStateRunning */ &&
                                             (int)__Interface.SecurityMode == 0 /* kCWSecurityModeOpen */;

                    __CurrentState = new WifiState(network, isInsecureNetwork);

                    WiFiStateChanged(__CurrentState);
                }
                catch (Exception ex)
                {
                    Logging.Info($"Inrernal ERROR parsing info about connected WiFi network '{ex.Message}' : {ex}");
                }
            }
        }
Exemplo n.º 7
0
 protected bool Equals(WiFiNetwork other)
 {
     return(string.Equals(SSID, other.SSID)); // && Enumerable.SequenceEqual(BSSID, other.BSSID);
 }
Exemplo n.º 8
0
 public WiFiNetworkInfo(WiFiNetwork network)
 {
     Network = network;
 }