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(); }
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}")); } }
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); }
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)); }
/// <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, }); }