如何在设备休眠时保持 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 不会将位置更新传送到已挂起的应用程序。
我的应用程序需要记录(尽可能精确地)用户随时间的位置和移动。如果我让设备休眠,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 不会将位置更新传送到已挂起的应用程序。