Xamarin获取wifi信号强度

Krz*_*z01 4 .net c# xamarin

在 Xamarina 中是否可以获取有关附近所有可用 wifi 信号强度的信息?我正在开发一个应用程序,用于收集和处理有关附近 WiFi 网络的信息。我还想在无需连接到给定网络的情况下获取此信息。

修复(不允许应用程序执行扫描):

//Define permissions
private string[] permissions = new string[]
{
   Android.Manifest.Permission.AccessFineLocation
};

//Permission check
ActivityCompat.RequestPermissions(this, permissions, 0);
Run Code Online (Sandbox Code Playgroud)

pin*_*dax 7

在 Xamarin.Android 中,您可以使用下面的代码获取 Wifi 连接及其强度(从 0 到 100)。

using Android.Net.Wifi;

...

var wifiMgr = (WifiManager)GetSystemService(WifiService);

var wifiList = wifiMgr.ScanResults;
foreach (var item in wifiList)
{
    var wifiLevel = WifiManager.CalculateSignalLevel(item.Level, 100);
    Console.WriteLine($"Wifi SSID: {item.Ssid} - Strengh: {wifiLevel}");
}
Run Code Online (Sandbox Code Playgroud)

您需要将这两个权限添加到清单中:

ACCESS_FINE_LOCATIONACCESS_WIFI_STATE

并确保您请求ACCESS_FINE_LOCATION.

希望这可以帮助。-