【问题标题】:About updating the GPS at the background关于后台更新 GPS
【发布时间】:2013-02-18 18:47:33
【问题描述】:

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

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

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

【问题讨论】:

    标签: ios background gps


    【解决方案1】:

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

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

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

    【讨论】:

    • 请注意,您可以定义所需的准确度级别。选择是(从最准确到最不准确的顺序)CLLocationAccuracyBestForNavigationkCLLocationAccuracyBestCLLocationAccuracyNearestTenMeterskCLLocationAccuracyHundredMeterskCLLocationAccuracyKilometerkCLLocationAccuracyThreeKilometers
    【解决方案2】:

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

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

    desiredAccuracy的设置影响功率:

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

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

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

    当我的应用处于后台时,它会停止更新 GPS,执行 你知道如何让它在后台保持更新吗?

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多