在另一个问题中发现的解决方案中没有一个在Swift 2中获取SSID有效,因为CaptiveNetwork框架在SWIFT2.0中被弃用
在Swift 1.2中,使用此函数:
func getSSID() -> String {
let interfaces = CNCopySupportedInterfaces()
if interfaces == nil {
return ""
}
//let interfacesArray = interfaces.takeRetainedValue() as! [String]
let interfacesArray = Array(arrayLiteral: interfaces)
if interfacesArray.count <= 0 {
return ""
}
let interfaceName = String(interfacesArray[0])
let unsafeInterfaceData = CNCopyCurrentNetworkInfo(interfaceName)
if unsafeInterfaceData == nil {
return ""
}
let interfaceData = unsafeInterfaceData.takeRetainedValue() as Dictionary!
print(interfaceData["SSID"], terminator: "")
return interfaceData["SSID"] as! String
}但是下面的代码不再起作用了。
发布于 2015-10-09 19:06:27
据我所知,CaptiveNetwork API在iOS 9中不受欢迎,但仍然可用--因此您仍然应该能够使用它们(这将给您自己带来危险,因为将来的更新可能会使它们不再像预期的那样工作)。如果它们在Swift中不可见,您可以通过ObjC桥接头来实现它们。
这不是我经常使用的领域,但看起来新的Network无论如何都是为了取代CaptiveNetwork。有关文档和WWDC15会话网络扩展与VPN的新进展,请参见网络扩展框架参考。
https://stackoverflow.com/questions/33040500
复制相似问题