iOS 12 获取SSID

2018-09-25  本文已影响151人  小凡凡520
获取SSID的方法
+ (NSString *)wifiSSID {

      NSString *ssid = nil;
      NSArray *ifs = (__bridge_transfer id)CNCopySupportedInterfaces();
      for (NSString *ifnam in ifs) {
          NSDictionary *info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam);
          if (info[@"SSID"]) {
              ssid = info[@"SSID"];
          }
      }
      return ssid;
  }
问题

在iOS 12中,经断点调试发现info为nil。猜测是CNCopyCurrentNetworkInfo方法在iOS 12中有了变化。通过查看官方文档,发现文档中增加了Important字样的描述:


1977357-c6edcac63870539a.png
解决方案

看到这里,解决方案就有了:Xcode -> [Project Name] -> Targets -> [Target Name] -> Capabilities -> Access WiFi Information -> ON

1977357-440a2e179fbe5040.png

按照上述方案操作完毕后,会发现工程的.entitlements文件中多了一对Key-Value:


1977357-ca973ac66e85ba9e.png

至此,就能在iOS 12+中正常获取到WiFi的SSID了。

上一篇 下一篇

猜你喜欢

热点阅读