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

获取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了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AGI阅读 16,009评论 3 119
  • 千山鸟飞绝的雪 一抹长堤,一点湖心亭的白 那时的西湖一舟入画 她就是这样饮酒的女子 如此西湖一般饮酒的女子 她的笑...
    乔青衫阅读 204评论 0 0