GPS многозадачность трек GPS местоположение - PullRequest
23 голосов
/ 09 декабря 2010

Мне было просто интересно, можно ли было создать приложение для iOS, которое бы отслеживало ваше местоположение через GPS, пока оно находилось в фоновом режиме.

Я пробовал это со встроенным приложением "Карты", нобезрезультатно.

Если это возможно, было бы здорово, если бы вы могли отослать меня к некоторому образцу кода, документации или учебным пособиям!

(если это дубликат, пожалуйста, дайте мнезнаю и я его уберу)

1 Ответ

43 голосов
/ 09 декабря 2010

Это возможно - см. этот документ для многозадачности в целом и этот раздел Руководства по программированию осведомленности о местоположении для "Получение событий местоположения в фоновом режиме" .Разумеется, все эти разговоры касаются всех различных способов, которыми устройство iOS может определить ваше местоположение (триангуляция вышек сотовой связи, наблюдение за Wi-Fi в стиле Skyhook и GPS), а не только GPS.

Короче говоря, из чтения этихdocs: добавьте ключ UIBackgroundModes в ваш info.plist, который является массивом, и поместите в него значение 'location'.Затем вы будете получать обновления CLLocationManager даже в фоновом режиме.

Однако, если вы хотите быть аккуратным с батареей, лучше использовать метод startMonitoringSignificantLocationChanges в CLLocationManager.Тогда вы получите достаточно важные обновления местоположения, даже если вы работаете в фоновом режиме, не будучи полным фоновым приложением.В других частях документации говорится, что существенным изменением является любое изменение с одной вышки сотовой связи на другую.

...