ios - iOS 上的标准位置服务耗电

标签 ios iphone location core-location cllocationmanager

我注意到,如果我有一个应用程序使用 Significant Location Change,它确实会在 24 小时内消耗大约 30% 的电量。我认为 SLC 不应该耗尽电池电量。

这种行为正常吗?我们在装有 iOS 8.3 和 8.4 的 iPhone 6 上进行了科学测试。我们还尝试了 iPhone 5c(iOS 8.3 和 8.4)。

最佳答案

CLLocationManager 上有几个选项,您必须明智地使用它们,否则您会看到意外的电池耗尽。

1- 当您调用 startMonitoringSignificantLocationChanges 方法时,请确保您尚未调用 startUpdatingLocation 否则请确保在调用之前使用 stopUpdatingLocation 停止它使用显着的距离。

2- 检查您的设置以自动暂停并允许延迟更新。这些将对事情产生重大影响。

3-如果您不需要信标、访问或地理围栏,请将其关闭。因为这些会迫使 LM 进入更高的电池消耗模式。

4- 您还应该检查收到位置更新时执行的逻辑。打开屏幕的通知和可能会启动 wifi 和手机服务的网络调用将比单独的位置管理器给您的设备增加更多的电池消耗。

您也可以查看 https://LocationKit.io用于优化定位服务以实现高精度和低功耗的 cocoapod。完全披露我在制作 LocationKit 的公司工作。

关于ios - iOS 上的标准位置服务耗电,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31520849/

相关文章:

ios - 无法设置多个 Controller 的 UILabel 字段

android - 如何以编程方式检查 Android "Location Consent"?

routes - Angularjs $location.url 不起作用,location.href 起作用

java - 无论我身在何处,我的应用程序都会返回相同的位置

ios - Twitter 登录因 TWTRInvalidInitializationException 而崩溃

ios - 具有多个对象的 NSArray

ios - 如何将图像添加到 UITableViewCell 删除按钮

ios - 设备上 iOS 7 中的 UIActivityViewController 中未显示 Twitter 图标

ios - 将 API 用于磁刷,但设备无法打开

ios - 在 Xcode 中创建按钮