我的应用在后台使用位置服务进行跟踪和地理围栏。
现在使用 iOS 13.2,我每秒都会在控制台中看到以下消息:
Anchorwatch nehelper sent invalid result code [1] for Wi-Fi information request
我的应用程序对 WiFi 系统没有任何作用,当我在设备上禁用 WiFi 时,消息消失。
虽然该消息似乎没有任何不利影响,但我通过艰难的方式了解到忽略消息可能是个坏主意。
任何人都可以提示我为什么会收到此消息以及我可以做些什么来抑制它吗?
最佳答案
我已经在 iOS 13.3 上做到了。这是我的制作方法。 (编辑 2020 年 8 月:我已经在 iOS 13.6 上测试过这个并且工作相同)
官方documentation CNCopyCurrentNetworkInfo 表示该函数正在提供当前连接的真实 SSID/BSSID,如果应用程序
- 拥有“访问 WiFi 信息权利”(请参阅 here)并且
- 是 1) 核心位置、2) 使用 NEHotspotConfiguration 连接当前 Wi-Fi 网络和 3) VPN 应用之一。
我已经配置了“访问WiFi信息权限”,因此只满足第一个要求。它可以在 iOS 13.1 上运行,但不能在 iOS 13.3 上运行。为了满足后一个要求,我决定将 Core Location 包含在我的 APP 中。我检查了 here 中的代码但我必须在应用程序的 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 而不会出现错误。
关于iOS 13.2 消息 : nehelper sent invalid result code [1] for Wi-Fi information request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58791035/