如何每10秒使用CLLocationManager获取位置?

时间:2019-06-24 15:29:54

标签: ios swift cllocationmanager

我想获得用户的不同位置,以便向他显示他的旅行。但是为了节省用户的电量,我想每隔10秒钟与我的CLLocation经理一起获取他的位置。

我首先想到的是不执行10秒间隔并在用户每次使用didUpdateLocations的{​​{1}}移动时获取用户的位置,但是当我模拟驱动器时,我每秒都会获取新的位置,我认为这对电池真的不好,对吗?

2 个答案:

答案 0 :(得分:3)

不要再猜测位置管理器。您的工作是适当地设置其属性,例如distanceFilterdesiredAccuracyactivityType。 Apple将使用本书中的所有技巧,以确保根据您的设置合理使用电池。正如文档所述:

  

核心位置通过在不需要时关闭硬件来积极管理电源。例如,将位置事件的期望精度设置为一公里,可以使位置管理器灵活地关闭GPS硬件,而仅依靠WiFi或蜂窝无线电,这可以节省大量电量。

如果目标是在后台跟踪位置,则有一些特殊的模式可以节省更多空间。

答案 1 :(得分:0)

每隔10秒频繁检查一次位置,这会很快耗尽用户的电池。
如果要节省电池,则应该学习有关位置管理器的苹果指南。
您需要使用distanceFilterdesiredAccuracy

Base guide CLLocationManager

Energy Efficiency Guide for iOS Apps

Location Awareness Programming Guide - Tips for Conserving Battery Power

更新
您还可以检查移动CLLocation的用户移动speed的速度并调整activityType