【发布时间】:2013-02-18 18:47:33
【问题描述】:
我正在用电池寿命测试一些 GPS 算法。我刚刚使用 core-location 框架编写了一个非常简单的应用程序,该应用程序每秒更新一次 gps 位置。
我想知道如何更改更新位置的时间间隔,例如 10 秒、1 分钟等?
当我的应用在后台时,它会停止更新 GPS,你知道如何让它在后台保持更新吗?
【问题讨论】:
标签: ios background gps
我正在用电池寿命测试一些 GPS 算法。我刚刚使用 core-location 框架编写了一个非常简单的应用程序,该应用程序每秒更新一次 gps 位置。
我想知道如何更改更新位置的时间间隔,例如 10 秒、1 分钟等?
当我的应用在后台时,它会停止更新 GPS,你知道如何让它在后台保持更新吗?
【问题讨论】:
标签: ios background gps
请注意,iOS 在大多数情况下通常不允许后台操作。 但至少有三个选项可以“永久”确定位置:
您无法更改时间间隔或类似的东西。您只有这三个选项 - 并且您只能在需要时获得一次位置信息,但这不是您的问题的意图。
【讨论】:
CLLocationAccuracyBestForNavigation、kCLLocationAccuracyBest、CLLocationAccuracyNearestTenMeters、kCLLocationAccuracyHundredMeters、kCLLocationAccuracyKilometer、kCLLocationAccuracyThreeKilometers
我想知道如何更改时间间隔来更新我的 位置,如 10 秒、1 分钟等?
这是不可能的,而且没有意义,因为如果 GPS 芯片每秒或每 10 秒需要一次定位,则它需要相同的功率。当然,如果您不喜欢它们(如果它们经常出现),您可以忽略它们。
desiredAccuracy的设置影响功率:
kCLLocationAccuracyBestForNavigation: 启用 GPS 和加速度传感器
kCLLocationAccuracyBest:启用 GPS,但没有加速度传感器(如果需要,手机塔定位)
kCLLocationAccuracyHundredMeters、kCLLocationAccuracyKilometer、kCLLocationAccuracyKilometer:更有可能使用蜂窝塔或 Wifi 定位(如果可用)。
这使用较少的功率(更有可能)但准确性较低。
当我的应用处于后台时,它会停止更新 GPS,执行 你知道如何让它在后台保持更新吗?
如果您阅读 Apple 的 LocationAwarnessGuide 并找到信息,如何在 Info.plist 文件中设置正确的密钥。
从 ios 6 开始有一个额外的变体,它应该会更省电:
有方法:didUpdateLocations(注:复数!):
这将一次提供所有位置,这样它 ios 就不需要让您的应用程序在后台运行。一旦应用进入前台,您将立即收到所有位置。
【讨论】: