我已经设法在 iOS 13.3 上成功了。这是我的制作方法。(编辑 2020 年 8 月:我已经在 iOS 13.6 上对此进行了测试并且工作相同)
CNCopyCurrentNetworkInfo的官方文档说如果应用程序提供当前连接的真实 SSID/BSSID
- 具有“访问 WiFi 信息权利”(请参阅此处)和
- 是 1) 核心位置、2) 使用 NEHotspotConfiguration 连接当前 Wi-Fi 网络和 3) VPN 应用程序之一。
我已经配置了“访问WiFi信息权限”,所以只满足第一个要求。它适用于 iOS 13.1,但不适用于 iOS 13.3。为了满足后一个要求,我决定在我的 APP 中包含核心位置。我已经检查了这里的代码,但我必须在我的应用程序的 Info.plist 上添加一些常量以避免错误。
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>Application requires user’s location for better user experience.</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>Application requires user’s location for better user experience.</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Application requires user’s location for better user experience.</string>
我还需要打电话
manager.requestWhenInUseAuthorization()
前
manager.requestAlwaysAuthorization()
当用户第一次启动应用程序时弹出对话框。
用户需要在首次启动时允许该权限。如果允许为“始终”,则应用程序可以正确使用 CNCopyCurrentNetworkInfo。