gpt4 book ai didi

iOS:从后台(信标)开始监控时,GPS 位置更新仅工作 10 秒

转载 作者:行者123 更新时间:2023-11-29 10:27:23 40 4
gpt4 key购买 nike

我们正在尝试创建一个应用程序,当手机存在信标/iBeacon 时,它会记录旅程的 GPS 日志。例如,如果你把信标放在你的车里,那么你所有的汽车旅程都会被自动记录下来。

但是我们立即遇到了问题。如果我们用前台的应用程序记录旅程,一切正常。然而,如果我们从 DidRangeBeacons() 回调开始记录旅程,我们似乎只获得 10 秒的数据,然后应用程序被挂起。我们已将所需的属性放入 Info.plist 文件中:

<key>UIBackgroundModes</key>
<array>
<string>location</string>
</array>

此外,该应用已正确注册以允许在后台运行时进行位置监控(并在必要时调用 locMgr.RequestAlwaysAuthorization()),并且在 iOS 的“位置隐私”屏幕上看起来一切正常。

似乎有什么东西正在阻止操作系统识别该应用程序有权在后台跟踪位置。或者我们可能通过从 DidRangeBeacons() 回调中直接调用 CLLocationManager.StartUpdatingLocation() 以错误的方式开始位置监控。

我们可以做些什么来绕过我们似乎达到的 10 秒限制?

我们在这种情况下使用 Xamarin,但我敢肯定,如果我们在 Objective C 中,我们也会遇到同样的问题,因为我怀疑这是滥用 API 的设计问题,因此任何帮助或代码示例来自任何一个平台都会有用。

最佳答案

为确保应用程序继续接收位置更新,您应该启动 background task .这将确保您的应用程序不会被暂停。通常允许后台任务执行 3 分钟,但如果您在 plist 中指定位置后台权限(您已经这样做),您将有无限的时间。如果应用程序需要为另一个前台应用程序释放内存,则该应用程序仍有可能被操作系统终止。但是,您也可以 monitor for significant location change .这将触发大约每 500m-1km(作为蜂窝塔和周围可用的 wifi 网络变化),如果它被终止(作为信标监控服务),实际上将重新启动应用程序。这有意义吗?

关于iOS:从后台(信标)开始监控时,GPS 位置更新仅工作 10 秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31460779/

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