ios - SystemConfiguration.CaptiveNetwork 在 iOS 12 上不起作用

标签 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
}

最佳答案

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

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

enter image description here

关于ios - SystemConfiguration.CaptiveNetwork 在 iOS 12 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50767946/

相关文章:

javascript - 想要在激活 iOS 键盘时调整浏览器视口(viewport)的大小

objective-c - 数组内数组项替换

ios - 使用 Firebase Analytics 事件记录 OneSignal 推送通知

ios - 如何将 SkLabelNode 中的文本居中

objective-c - 隐藏事件指示器不起作用

ios - 如何使用 iOS 13 在 iOS 设备中获取 SSID

ios - AVPlayer 无法快速播放 iPod-Library 歌曲项目

c# - 获取所有 SSID 及其 mac 地址的列表

c++ - 在 C++ 中获取当前连接的网络名称 (SSID)

ios - 是否可以使 NSObject 符合协议(protocol)?如果是,怎么办? -认真对待