2012-06-22 3 views
0

Я создаю небольшое прототип приложения для тестирования сервисов местоположения. Мое приложение использует как -startUpdatingLocation, так и -startMonitoringSignificantLocationChanges (для фоновой обработки).Определение режима обновления служб местоположения iOS

В обоих случаях я пытаюсь отправить объект json на сервер с данными о местоположении, которые я получаю, но я хотел бы также отправить какой-то идентификатор, чтобы я мог определить, какой режим местоположения сервис был использован для получения данных (GPS, Wi-Fi, башни или, по крайней мере, если это через одну из двух услуг выше.

Я настраиваю мой CLLocationManager в AppDelegate, если это делает никакой разницы.

ответ

1

Источники, которые используют CLLocationManager, не указаны. Однако вы можете определить, является ли GPS чтобы выключить, установив свойство desiredAccuracy. Как отмечается в документации, точность 1 километр может отключить GPS.

Например, установка желаемой точности для событий местоположения на один километр дает менеджеру местоположения возможность отключить аппаратуру GPS и полагаться исключительно на Wi-Fi или сотовые радиостанции. Отключение оборудования GPS может привести к значительной экономии энергии.

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

Вы можете грубо угадать, что было использовано для определения вашего местоположения, изучив свой объект CLLocation. Каждый объект CLLocation имеет свойство, называемое horizontalAccuracy. Это значение измеряется в метрах. Если он меньше 1 километра, тогда GPS был , вероятно,.

+0

Насколько я понимаю, использование -startMonitoringSignificantLocationChanges НЕ будет использовать GPS, это правильно? Если это так, ваша идея будет работать отлично. Я могу передать horizontalAccuracy на сервер и получить такую ​​хорошую идею. Большое спасибо! – Rod

+1

Правильно, 'startMonitoringSignificantLocationChanges' не требует поворота GPS. Как я уже говорил, если другое приложение (или даже другой код в вашем собственном приложении) запрашивает более точную информацию, вы все равно можете получить GPS-адреса. –