2013-02-18 2 views
0

Я тестирую некоторые алгоритмы GPS с временем автономной работы. Я просто написал очень простое приложение, использующее фреймворк core-location, и приложение обновляет местоположение gps каждую секунду.Об обновлении GPS на backgroud

Мне интересно, как изменить временной интервал для обновления моего местоположения, например 10, 1 мин и т. Д.?

И когда мое приложение находится на заднем плане, оно перестает обновлять GPS, вы знаете, как сохранить его на заднем плане?

Большое спасибо!

ответ

2

Помните, что iOS обычно не позволяет выполнять фоновые операции в большинстве случаев. Но, по крайней мере, есть три варианта «постоянно» определяют местоположение:

  1. Как Вы писали: определить местоположение все время, когда ваше приложение не в фоновом режиме. (1)
  2. определять местоположение все время - также в фоновом режиме. Вам необходимо обновить свой Info.plist и добавить местоположение в качестве необходимой фоновой службы (требуется для отслеживания местоположения, например, для Google Latitiude) (take a look at api)
  3. получать обновления местоположения только при location changes significantly.

Вы не можете изменить промежуток времени или что-то в этом духе. У вас есть только три варианта: вы можете получить информацию о местоположении только один раз, когда они вам понадобятся, но это не было целью вашего вопроса.

+1

Обратите внимание, что вы можете определить уровень точности, который вы хотите. Выбор (в порядке наименьшей точности) 'CLLocationAccuracyBestForNavigation',' kCLLocationAccuracyBest', 'CLLocationAccuracyNearestTenMeters',' kCLLocationAccuracyHundredMeters', 'kCLLocationAccuracyKilometer',' kCLLocationAccuracyThreeKilometers' –

0

Мне интересно, как изменить временной интервал для обновления моего местоположения , например 10, 1 мин и т. Д.?

Это невозможно, и это не имеет смысла, потому что чип GPS нуждается в такой же мощности, если ему требуется положение один раз в секунду или 10 секунд. Конечно, вы можете игнорировать позиции, если вам не нравятся (если они часто появляются).

настройки desiredAccuracy влияет на мощность:

kCLLocationAccuracyBestForNavigation: включен GPS и ускорения Датчики kCLLocationAccuracyBest: позволяет GPS, но без разгона датчики (Cell Tower размещения в случае необходимости)

kCLLocationAccuracyHundredMeters, kCLLocationAccuracyKilometer, kCLLocationAccuracyKilometer: с большей вероятностью использовать Cell Tower или Wifi, если они доступны.

Это использует меньше энергии (скорее), но точность ниже.

И когда мое приложение находится на заднем плане, оно перестает обновлять GPS, do вы знаете, как сохранить его на заднем плане?

Если ваше прочитанное местоположение компании AppleAwarnessGuide ypou найдет информацию о том, как установить правильный ключ в файле Info.plist.

С ios 6 есть дополнительный вариант, который должен сэкономить больше энергии: Существует способ: didUpdateLocations (примечание: множественное число!):
Это позволит доставить все местоположения сразу, так что ios не нужно поддерживать ваше приложение в фоновом режиме. Как только приложение войдет на передний план, вы сразу получите все позиции.

Смежные вопросы