public ObservableCollection <WifiModel> GetWifiList()
        {
            var      list        = new ObservableCollection <WifiModel>();
            Assembly assembly    = typeof(HomePage).GetTypeInfo().Assembly;
            var      wifiManager = (WifiManager)Android.App.Application.Context
                                   .GetSystemService(Context.WifiService);

            int numberOfLevels = 5;
            var wifiInfo       = wifiManager.ConnectionInfo;

            foreach (var scanResult in wifiManager.ScanResults)
            {
                int signalLevel = WifiManager.CalculateSignalLevel(scanResult.Level, numberOfLevels);
                var name        = scanResult.Ssid;
                var ipAddress   = scanResult.Bssid;

                switch (signalLevel)
                {
                case 0:
                    list.Add(new WifiModel()
                    {
                        WifiNetworkName = name, NetworkAddress = ipAddress, NetworkImage = ImageSource.FromResource("DeviceInternals.Images.Network0.png", assembly)
                    });
                    break;

                case 1:
                    list.Add(new WifiModel()
                    {
                        WifiNetworkName = name, NetworkAddress = ipAddress, NetworkImage = ImageSource.FromResource("DeviceInternals.Images.Network1.png", assembly)
                    });
                    break;

                case 2:
                    list.Add(new WifiModel()
                    {
                        WifiNetworkName = name, NetworkAddress = ipAddress, NetworkImage = ImageSource.FromResource("DeviceInternals.Images.Network2.png", assembly)
                    });
                    break;

                case 3:
                    list.Add(new WifiModel()
                    {
                        WifiNetworkName = name, NetworkAddress = ipAddress, NetworkImage = ImageSource.FromResource("DeviceInternals.Images.Network3.png", assembly)
                    });
                    break;

                default:
                    list.Add(new WifiModel()
                    {
                        WifiNetworkName = name, NetworkAddress = ipAddress, NetworkImage = ImageSource.FromResource("DeviceInternals.Images.Network4.png", assembly)
                    });
                    break;
                }
            }

            return(list);
        }
            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();
            }
Beispiel #3
0
        void getWifiList()
        {
            IList myListrow = new ArrayList();

            var wifiMgr  = (WifiManager)GetSystemService(WifiService);
            var wifiList = wifiMgr.ScanResults;

            foreach (var item in wifiList)
            {
                var wifiLevel = WifiManager.CalculateSignalLevel(item.Level, 100);
                myListrow.Add(($"Wifi Name: {item.Ssid} - Single: {wifiLevel}"));
            }
        }
Beispiel #4
0
        public int GetStrength()
        {
            Context _context = Android.App.Application.Context;
            //Xamarin.Forms.Forms.Context
            //WifiManager wifiManager = (WifiManager)Forms.Context.GetSystemService(Context.WifiService);
            WifiManager wifiManager    = (WifiManager)_context.GetSystemService(Context.WifiService);
            int         numberOfLevels = 5;
            WifiInfo    wifiInfo       = wifiManager.ConnectionInfo;

            int level = WifiManager.CalculateSignalLevel(wifiInfo.Rssi, numberOfLevels);

            return(level);
        }
            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;
                }

                // get the network for which the signal has changed
                var scanWiFiNetworks = wifi.ScanResults;
                var network          = scanWiFiNetworks.Single(n => n.Bssid.ToLower() == wifi.ConnectionInfo.BSSID.ToLower());

                if (network == null)
                {
                    return;
                }

                var wifiNetwork = wiFiNetworks.Single(n => n.BSSID.ToLower() == network.Bssid.ToLower());

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

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

                //tv.setText(tv.getText() + "\nDifference :" + difference + " signal state:" + signalStrength);
            }
Beispiel #6
0
        static SignalStrength PlataformSignal()
        {
            if (Current is null)
            {
                throw new ArgumentNullException(nameof(Current));
            }

            var wifiManager = (WifiManager)Current.GetSystemService(Android.Content.Context.WifiService);

            var info = wifiManager?.ConnectionInfo;

            if (info is null)
            {
                return(SignalStrength.Unknown);
            }

            var lvl = WifiManager.CalculateSignalLevel(info.Rssi, 6);

            return(GetSignal(lvl));
        }
Beispiel #7
0
        /// <summary>
        /// MakeWiFiInfo
        /// </summary>
        /// <param name="capabilities"></param>
        /// <param name="signal"></param>
        /// <param name="bssid"></param>
        /// <param name="ssid"></param>
        /// <returns></returns>
        public static WifiInfo MakeWiFiInfo(string capabilities, int signal, string bssid, string ssid)
        {
            WiFiSecurityTypes wiFiSecurity = WiFiSecurityTypes.Other;

            if (!string.IsNullOrEmpty(capabilities))
            {
                // string mCapabilities = capabilities;
                try
                {
                    if (capabilities.Contains("WEP"))
                    {
                        wiFiSecurity = WiFiSecurityTypes.WEP;
                    }
                    else if (capabilities.Contains("WPA") || capabilities.Contains("WPA2"))
                    {
                        if (capabilities.Contains("ENTERPRISE_CAPABILITY"))
                        {
                            wiFiSecurity = WiFiSecurityTypes.WPA2Enterprise;
                        }
                        else
                        {
                            wiFiSecurity = WiFiSecurityTypes.WPA2Personal;
                        }
                    }
                    else if (capabilities.Contains("WPA_EAP"))
                    {
                        wiFiSecurity = WiFiSecurityTypes.WPA2Enterprise;
                    }
                    else if (capabilities.Contains("IEEE8021X"))
                    {
                        wiFiSecurity = WiFiSecurityTypes.Other;
                    }
                    else
                    {
                        wiFiSecurity = WiFiSecurityTypes.NoAuthentication;
                    }
                }
                catch
                {
                }
            }

            int signalStrength = WifiManager.CalculateSignalLevel(signal, 5);

            if (signalStrength < -1)
            {
                signalStrength = 0;
            }

            if (signalStrength > 4)
            {
                signalStrength = 4;
            }

            return(new WifiInfo
            {
                Ssid = ssid,
                Security = wiFiSecurity,
                Identity = bssid,
                Signal = signalStrength,
            });
        }