微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在 Xamarin.IOS 中获取网络 SSID 时出错

我将此键添加到 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。软件版本:

  • Microsoft Visual Studio 社区 2019 版本 16.8.4
  • Xamarin 16.8.000.261
  • Xamarin.iOS 和 Xamarin.Mac SDK 14.8.0.3 (c51fabee8)
  • XCode 12.3

解决方法

我需要参加苹果开发者计划,并在苹果开发者门户启用访问 WiFi 信息功能。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。