0

我正在用电池寿命测试一些 GPS 算法。我刚刚使用核心位置框架编写了一个非常简单的应用程序,该应用程序每秒更新一次 gps 位置。

我想知道如何更改更新位置的时间间隔,例如 10 秒、1 分钟等?

当我的应用程序在后台时,它会停止更新 GPS,你知道如何在后台保持更新吗?

4

2 回答 2

2

请注意,iOS 通常在大多数情况下不允许后台操作。但至少有三个选项可以“永久”确定位置:

  1. 正如您所写:当您的应用程序不在后台时,始终确定位置。()
  2. 始终确定位置 - 也在后台。您需要更新 Info.plist 并将位置添加为所需的后台服务(位置跟踪所需,例如 Google Latitiude)(查看 api)
  3. 仅当位置发生显着变化时才获取位置更新。

您无法更改时间间隔或类似的东西。您只有这三个选项 - 您只能在需要时获得一次位置信息,但这不是您问题的意图。

于 2013-02-18T18:58:54.790 回答
0

我想知道如何更改更新位置的时间间隔,例如 10 秒、1 分钟等?

这是不可能的,也没有意义,因为如果 GPS 芯片每秒或每 10 秒需要一个位置,则它需要相同的功率。当然,如果您不喜欢它们(如果它们经常出现),您可以忽略它们。

desiredAccuracy影响功率的设置:

kCLLocationAccuracyBestForNavigation:启用 GPS 和加速度传感器 kCLLocationAccuracyBest:启用 GPS,但没有加速度传感器(如果需要,可以定位蜂窝塔)

kCLLocationAccuracyHundredMeters, kCLLocationAccuracyKilometer, kCLLocationAccuracyKilometer: 更有可能使用蜂窝塔或 Wifi 定位(如果有)。

这使用较少的功率(更有可能)但准确性较低。

当我的应用程序在后台时,它会停止更新 GPS,你知道如何在后台保持更新吗?

如果您阅读 Apple 的 LocationAwarnessGuide 找到信息,如何在 Info.plist 文件中设置正确的密钥。

由于 ios 6 有一个额外的变体,它应该会节省更多的能量: 有方法:(didUpdateLocations注意:复数!):
这将一次提供所有位置,这样 ios 不需要让您的应用程序在后台运行。一旦应用程序进入前台,您将立即收到所有职位。

于 2013-02-18T19:14:36.730 回答