在 Xamarin.IOS 中获取网络 SSID 时出错

Error getting network SSID in Xamarin.IOS

我将此密钥添加到 Info.plist:

<key>NSLocationWhenInUseUsageDescription</key>
<string>Your Description</string>

并勾选Entitlements.plist中的“添加访问wifi信息”。

我也向用户请求了位置权限:

var manager = new CLLocationManager();
if (UIDevice.CurrentDevice.CheckSystemVersion(8, 0))
    manager.RequestWhenInUseAuthorization();

我点击“允许”,然后我想获取wifi信息:

if (CLLocationManager.Status is CLAuthorizationStatus.Authorized || 
    CLLocationManager.Status is CLAuthorizationStatus.AuthorizedAlways || 
    CLLocationManager.Status is CLAuthorizationStatus.AuthorizedWhenInUse)
{
  if (CaptiveNetwork.TryGetSupportedInterfaces(out string[] supportedInterfaces) == StatusCode.OK)
  {
    foreach (var item in supportedInterfaces)
    {
      if (CaptiveNetwork.TryCopyCurrentNetworkInfo(item, out NSDictionary info) == StatusCode.OK)
      {
        var ssid = info[CaptiveNetwork.NetworkInfoKeySSID].ToString();
        System.Console.WriteLine(ssid);
      }
    }
  }
}

但是 info 变量始终为 null。

我想获取连接的 wifi 网络的 SSID 和保护级别(WPA、WPA2 等)。

我使用 iPhone SE iOS 14.4。软件版本:

我需要加入Apple Developer Program,并在apple developer portal开启Access WiFi Information功能。