如何在设备休眠时保持 GPS 处于全功率状态

How to keep gps at full power while device sleeps

我的应用程序需要记录(尽可能精确地)用户随时间的位置和移动。如果我让设备休眠,GPS 精度似乎会自动降低。我可以阻止它休眠,但显然这会进一步消耗电池电量。我想让显示器休眠,但要保持位置管理器的最大精度。我在背景模式部分勾选了位置更新。我的代码看起来像这样...

    locationManager.delegate = self
    locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation
    locationManager.distanceFilter = 1
    locationManager.activityType = .Fitness
    locationManager.requestAlwaysAuthorization()
    locationManager.pausesLocationUpdatesAutomatically = false
    locationManager.startUpdatingLocation()

        UIApplication.sharedApplication().idleTimerDisabled = true

我真的很想删除最后一行,但我在 4s 上所做的所有测试表明,一旦设备休眠,它就会失去准确性。

假设是iOS9你还需要这一行:

locationManager.allowsBackgroundLocationUpdates = 真;

默认情况下,此 var 设置为 false,这意味着 iOS 不会将位置更新传送到已挂起的应用程序。