调用 CNCopyCurrentNetworkInfo 可以获取 Wi-Fi 信息,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
NSArray *ifs = CFBridgingRelease(CNCopySupportedInterfaces()); id info = nil; for(NSString *ifname in ifs){ info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifname); if(info && [info count]){ break; } } NSString *strSsid = info[@"SSID"]; NSString *strBssid = info[@"BSSID"] |
但是在 iOS 12 系统进行测试发现获取的 SSID 和 BSSID 都是空,不用慌张,查阅苹果官方文档发现有一个提示,原文如下:
1 2 3 4 |
Important To use this function in iOS 12 and later, enable the Access WiFi Information capability in Xcode. For more information, see Access WiFi Information Entitlement. |
原文的意思是在 iOS 12 使用 CNCopyCurrentNetworkInfo 需要在 Xcode 开启 “Access WiFi Information”,如下图所示:
重新编译代码即可获取 SSID 和 BSSID,不会提示授权的对话框。