SystemConfiguration.CaptiveNetwork在iOS 12

时间:2018-06-08 20:25:54

标签: ios swift ssid ios12

我有一个功能,可以检测用户的当前SSID。不幸的是,这不再适用于iOS 12.这意味着它只是跳过if let interfaceInfo = CNCopyCurrentNetworkInfo(interface as! CFString) as NSDictionary? {部分。也许这只是一个错误或它被弃用了。我在Apple Docs上找不到任何内容。 在较旧的iOS 11,10和9设备上,它运行良好。

这是我的代码:

func getWiFiSsid() -> String? {
    if let interfaces = CNCopySupportedInterfaces() as NSArray? {
        for interface in interfaces {
            if let interfaceInfo = CNCopyCurrentNetworkInfo(interface as! CFString) as NSDictionary? {

                ssid = interfaceInfo[kCNNetworkInfoKeySSID as String] as? String


            }
        }
    }
    return ssid
}

1 个答案:

答案 0 :(得分:32)

要在iOS 12及更高版本中使用此功能,请在Xcode中为您的应用启用访问WiFi信息功能。启用此功能后,Xcode会自动将Access WiFi Information授权添加到您的授权文件和App ID中。

https://developer.apple.com/documentation/systemconfiguration/1614126-cncopycurrentnetworkinfo?language=objc

enter image description here