gpt4 book ai didi

iphone - 在后台请求 iPhone 位置?

转载 作者:太空狗 更新时间:2023-10-30 03:20:10 25 4
gpt4 key购买 nike

简单的问题...我有一个应用程序以 30 秒的间隔(使用 NSTimer)记录用户位置,它可以完美地工作,直到应用程序进入“非事件”状态并且 NStimer 停止。因此,我正在寻找保持我的位置间隔(30 秒)同时仍然能够记录相当准确的位置数据(精度在 100 米以内)的选项。

  • Option_001,蛮力:让 CLLocationManager、startUpdatingLocation 使用 UIBackgroundModes = "location"一直运行。不推荐,耗电。根据要求的规律性,精度约。 10-65米。可能只是唯一现实的选择。

  • Option_002,SLC:我可以使用 Significant Location Change,但位置更新的频率很低(更不用说准确性了)。如果应用程序在手机信号塔数量有限的农村或荒野地区运行,则尤其如此。规律性未知,准确度约为。 500米

  • Option_003,混合:我可以在后台使用显着位置变化 (SLC) 作为“显着”移动的指标,然后根据 kCLLocationAccuracyBest 请求 GPS 位置。这可行,但 SLC 事件不会以接近 30 秒的间隔到达任何地方(尤其是在步行时)。规律性未知,准确度约为。 10-50 米。

  • Option_004,还有其他事情吗?如有任何想法,我们将不胜感激。


注意: 我认为我可以正常工作,因为当您在 iPhone(通过 USB 连接)上按 [LOCK] 时,applicationWillResignActive 会被调用,但 NSTimers 不会停止。如果您在未连接 iPhone 的情况下尝试相同的操作(即手机正常使用),NSTimers 几乎会在调用 applicationWillResignActive 后立即停止。

最佳答案

首先,不要使用计时器来更新用户位置。从另一端接近它:检查,收到新位置时,自上次“记录”以来的间隔,并决定是否要记录新位置。

此外,这将解决您的“非事件”状态问题。只需启用后台定位服务。 Info.plist > 所需的后台模式 > 应用注册位置更新

在后台,当接收到新位置时,您的应用将进入“后台事件”状态,以便有足够的时间进行 API 调用并推送新位置。

一句话,您需要将此应用设计为与新的背景模式兼容。

注意:此解决方案不适用于 iOS3.x

关于iphone - 在后台请求 iPhone 位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5807560/

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