gpt4 book ai didi

ios - 为什么 iOS 13 Core Location 有时会在后台返回坐标为 0,0 的位置?

转载 作者:行者123 更新时间:2023-12-02 00:45:25 25 4
gpt4 key购买 nike

就上下文而言,我正在开发一个需要 authorizedAlways 的应用程序允许。自 iOS 13 发布以来,我们注意到约 3-4% 的用户正在接收坐标为 didUpdateLocations 的位置更新(来自 0,0 )。和一个 horizontalAccuracy 2500。这似乎只发生在应用程序处于后台状态时。

这一切都非常令人困惑,因为应用程序记录了对授权状态的所有更改(使用 didChangeAuthorization ),并且我在任何时候都看不到对 authorizedAlways 以外的值进行任何更改。 。也就是说,根据我所做的手动测试,应用程序似乎确实会收到 authorizedAlways 更改的通知。用户点击初始 requestAlwaysAuthorization 后的状态提示 Allow While Using App 。然后,当用户将应用程序置于后台一段时间时,系统会重新提示两个选项: Keep Only While UsingChange to Always Allow 。如果用户继续执行Keep Only While Using,应用程序似乎只会收到授权状态​​更改的通知。选择(并且应用程序会收到 authorizedWhenInUse 更改的通知。)

我有一个假设,即提示用户进行后台使用(或操作系统确定需要提示)和用户实际响应提示之间可能存在一些奇怪的状态,但我的测试非常一致地表明在这种状态下,应用程序根本不会接收任何位置更新。

我在解决此问题时遇到了困难,希望这只是 iOS 13 的错误,但我还没有听说任何其他应用程序遇到此问题。非常感谢任何关于进一步故障排除想法的建议,或者只是您的应用程序也遇到了这个问题,这样我就可以停止敲打它了!

最佳答案

这听起来像是一个错误。如果位置无效,则 horizo​​ntalAccuracy 的值应为负,但这绝对是无效位置。通过 CLLocationCooperative2DIsValid() 运行 CLLocationCooperative2D 或将其与 kCLLocationCooperative2DInvalid 进行比较,但由于您有正的水平精度,它可能会(错误地)告诉您:这是有效的。

我的猜测与您的相同,在用户从第二个提示中实际授予“始终”权限之前,应用程序已被告知它具有“始终”权限,并且它在后台时以某种方式接收到错误的位置。

没有通知,因为您的应用永远不应该知道它何时真正拥有“始终”权限(大概是为了防止它等到拥有“始终”权限才开始滥用后台位置)。

向 Apple 提交错误或使用 DTS 事件。如果这是一个框架错误,您应该重新获得 DTS 并同时获得更快的支持。

同时,对无效位置(包括坐标为 0,0)添加额外检查。

关于ios - 为什么 iOS 13 Core Location 有时会在后台返回坐标为 0,0 的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58294372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com