关于在后台更新GPS

时间:2013-02-18 18:47:33

标签: ios background gps

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

我想知道如何更改更新位置的时间间隔,例如10s,1min等?

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

2 个答案:

答案 0 :(得分:2)

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

  1. 正如您所写:当您的应用不在后台时,请始终确定位置。 (1
  2. 始终确定位置 - 也在后台。您需要更新Info.plist并将位置添加为必需的后台服务(例如,Google Latitiude所需的位置跟踪)(take a look at api)
  3. 仅在location changes significantly
  4. 时获取位置更新

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

答案 1 :(得分:0)

  

我想知道如何更改更新我的时间间隔   位置,如10s,1min等?

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

desiredAccuracy的设置会影响权力:

kCLLocationAccuracyBestForNavigation:启用GPS和加速度传感器 kCLLocationAccuracyBest:启用GPS但不启用加速度传感器(如果需要,可以使用Cell Tower定位)

kCLLocationAccuracyHundredMeterskCLLocationAccuracyKilometerkCLLocationAccuracyKilometer:如果可用,更有可能使用Cell Tower或Wifi定位。

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

  

当我的应用程序处于后台时,它会停止更新GPS,请执行此操作   你知道如何在后台更新它吗?

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

由于ios 6还有一个额外的变体,它可以节省更多电量: 有方法:didUpdateLocations(注意:复数!):
这将立即提供所有位置,以便它不需要让您的应用程序在后台生存。应用程序进入前台后,您将立即收到所有职位。