Xamarin.android 如何获取Wi-Fi网络的名称列表

Xamarin.android 如何获取Wi-Fi网络的名称列表,xamarin.android,Xamarin.android,如何获取Wi-Fi网络和信号的名称列表 我使用以下方法填充数组。 它只适用于低于5的Android版本。并且不适用于6或更高版本。 我想要所有版本的代码 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> &l

如何获取Wi-Fi网络和信号的名称列表

我使用以下方法填充数组。 它只适用于低于5的Android版本。并且不适用于6或更高版本。 我想要所有版本的代码

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

List myListrow = new List();

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

        }
更新:

添加权限。访问权限\u位置权限。原始代码运行良好

用于列出所有名称的代码:

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

        }

    }
请求权限的代码:

 private void RequestPermission()
    {
        Log.Info(TAG, " permission has NOT been granted. Requesting permission.");

        if (ActivityCompat.ShouldShowRequestPermissionRationale(this, Manifest.Permission.AccessCoarseLocation))
        {

            Snackbar.Make(layout, Resource.String.permission_accesscoarselocation_rationale,
                Snackbar.LengthIndefinite).SetAction(Resource.String.ok, new Action<View>(delegate (View obj) {
                    ActivityCompat.RequestPermissions(this, new String[] { Manifest.Permission.AccessCoarseLocation }, REQUEST_LOCATION);
                })).Show();
        }
        else
        {
            // AccessCoarseLocation permission has not been granted yet. Request it directly.
            ActivityCompat.RequestPermissions(this, new String[] { Manifest.Permission.AccessCoarseLocation }, REQUEST_LOCATION);
        }
    }
截图:

您可以从下面的链接下载源文件。