I was just wondering if it was possible to make an iOS app that would track your location via GPS while it was in the background.
I tried this with the built-in app "Maps", but to no avail.
If this is possible, it would be great if you could refer me to some sample code, documentations, or tutorials!
(if this is a duplicate, please let me know and I will remove it)
Source: Tips4all
This is possible — see this document for multitasking in general and this section of the Location Awareness Programming Guide for "Getting Location Events in the Background". Of course, all these talk about all of the various ways an iOS device can get your location (cell tower triangulation, Skyhook-style wifi network observation and GPS), not exclusive GPS.
ReplyDeleteIn short, from reading those docs: add the UIBackgroundModes key into your info.plist, which is an array, and put the value 'location' into it. You'll then receive CLLocationManager updates even when in the background.
However, if you want to be nice to the battery then you're better off using the startMonitoringSignificantLocationChanges method on a CLLocationManager. Then you get suitably significant location updates even when in the background without being a full on background app. Other parts of the documentation state that a significant change is any change from one cell tower to another.