美文网首页
在iOS 12中无法获取WiFi的SSID了?解决以下方案

在iOS 12中无法获取WiFi的SSID了?解决以下方案

作者: 致青春_bf42 | 来源:发表于2018-09-22 09:12 被阅读0次

    获取WiFi的SSID的方法如下:

    + (NSString*)wifiSSID {

    NSString*ssid =nil;

    NSArray*wifiArray = (__bridge_transferid)CNCopySupportedInterfaces();

    for(NSString*wifiName in wifiArray) 

    {

    NSDictionary*info = (__bridge_transferid)CNCopyCurrentNetworkInfo((__bridgeCFStringRef)wifiName);

    if(info[@"SSID"]) 

    {

    ssid = info[@"SSID"];

    }

    }

    return ssid;

    }

    在iOS 12中,经断点调试发现info为nil。猜测是CNCopyCurrentNetworkInfo方法在iOS 12中有了变化。

    重要描述

    在iOS 12+中使用此方法需要在Xcode中为应用授权获取WiFi信息的能力。授权后,Xcode会自动在App ID和应用的权限列表中增加获取WiFi信息的权限。

    解决方法如下:Xcode  -> Targets -> Capabilities -> Access WiFi Information -> 打开

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

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

    相关文章

      网友评论

          本文标题:在iOS 12中无法获取WiFi的SSID了?解决以下方案

          本文链接:https://www.haomeiwen.com/subject/zemtoftx.html