【发布时间】:2018-11-18 22:42:12
【问题描述】:
我有一个功能可以检测用户的当前 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
}
【问题讨论】:
-
顺便说一句 - 使用
if let强制转换为可选项没有任何意义。并且不要在 Swift 中使用NSArray或NSDictionary。 -
您是否在
CNCopyCurrentNetworkInfo的文档中看到了这个大注:“要在 iOS 12 及更高版本中使用此功能,请在 Xcode 中为您的应用启用添加 WiFi 信息功能。当您启用此功能,Xcode 会自动将 Add WiFi Information 权利添加到您的权利文件中,并将相应的功能添加到您的 App ID。" -
@rmaddy 哦,好的,谢谢,我会调查一下
-
@rmaddy 现在我明白了
-
@VictorLobe 这解决了问题吗?