我的应用程序在后台使用locationservices进行跟踪和地理围栏。
现在,在iOS 13.2中,我每秒都会在控制台中看到以下消息:
Anchorwatch nehelper sent invalid result code [1] for Wi-Fi information request
我的应用程序对WiFi系统没有任何作用,当我在设备上禁用WiFi时,消息就会消失。
虽然这条消息似乎没有负面影响,但我痛苦地认识到,忽略消息可能是一个坏主意。
有人能提示我为什么要发这条消息吗?我能做些什么来抑制它?
发布于 2019-11-23 01:46:54
最终证明,我的应用程序使用的第三方框架启动了对CNCopyCurrentNetworkInfo的调用。
在我将here描述的WiFi访问功能添加到应用程序本身之后,错误消息消失了
发布于 2020-04-01 22:31:21
我已经成功地在iOS 13.3上实现了。这就是我的制作方法。(编辑2020年8月:我已经在iOS 13.6上测试过了,并且工作正常)
CNCopyCurrentNetworkInfo的官方documentation表示,如果应用提供当前连接的真实SSID/BSSID,则该函数会提供该功能
我已经配置了"Access WiFi信息授权“,因此只满足第一个要求。它可以在iOS 13.1上工作,但不能在iOS 13.3上工作。为了满足后一种需求,我决定在我的应用程序中包含核心位置。我已经检查了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()
在用户第一次启动应用程序时弹出对话框。
用户需要在第一次启动时允许该权限。如果允许设置为"Always",则应用程序可以使用CNCopyCurrentNetworkInfo而不会出错。
发布于 2019-11-12 20:28:37
查看WWDC19会话713,它的发生是因为在iOS13中,为了获取WiFi详细信息,您应该允许位置权限,每次您尝试从CNCopySupportedInterfaces数组中提取CNCopyCurrentNetworkInfo数据时,您都会获得此日志。
愚蠢的解决方案可能是尝试启用位置权限,您将不会再收到此错误
https://stackoverflow.com/questions/58791035
复制相似问题