Я собираюсь начать использовать службы определения местоположения, но у вас есть общий вопрос о том, как GPS-приемник используется в Android. Когда GPS включен на устройстве, он активен сразу (т.е. Получает спутниковое исправление) или активен только тогда, когда приложение запрашивает обновления местоположения?
Причина, по которой я спрашиваю, заключается в том, что мой опыт работы с различными персональными GPS-модулями заключается в том, что когда вы сначала активируете их, есть значительное время, прежде чем он закроется и выяснит, где он (мой Garmin Forerunner может взять пару минут, чтобы получить исправление).
Итак, как Android получает начальную блокировку GPS, и может ли она поддерживать эту блокировку, даже если приложение получает только обновления позиций на пару минут? Обычно приложение испытывает большой временной лаг перед уведомлением первой позиции?
Для получения исправления GPS требуется некоторое время. Точное количество времени будет отличаться от устройств, которые я считаю, но это не пара минут. Обычно несколько секунд в моем использовании - как в Картах Google, так и в моем приложении.
Вы получаете обновления GPS в своем приложении, только если вы явно запрашиваете их. Частота обновлений зависит от параметров, с которыми вы инициализируете LocationListener. Если вы сохранили GPS и затем запустили приложение, процесс будет быстрее.
Вы также можете получить последнюю известную самую лучшую оценку, если хотите начать работу сразу и не хотите ждать точного исправления.
Я не знаю, является ли это независимым от устройства, которое вы используете, но Android должен вести себя так:
Если GPS включен, это не означает, что он действительно используется. Включено только означает, что он может использоваться приложением или что-то еще. Итак, ваше предположение верно, для получения сигнала требуется некоторое время. Однако на моем устройстве (HTC Desire) это делается очень быстро. Но иногда я также замечал, что это заняло 2-3 минуты. Но я думаю, что это зависит от устройства, погодных условий, окружающей среды (например, возле большого здания) и, наконец, не в последнюю очередь космическое излучение.
Лучшим решением, я думаю, является использование GPSStatusListener, чтобы проверить, сколько сателлитов вы подключены и проверить первое исправление.
Мой опыт работы с телефоном, который я разрабатывал, заключается в том, что первоначальное исправление занимает немного времени, если ранее функция GPS была отключена. Однако, как только он найдет исправление, он довольно часто запускает событие onlocationchange.
Функциональность GPS такая же, как и любая другая, в том, что время задержки или время ожидания для получения спутников, часто три или более одинаковы. Время ожидания - это функция того, как далеко вы находитесь от вашего последнего местоположения > 400 миль и линии видимости каждого спутника.
Что касается GPS-обновления вашего приложения. Читайте о LocationManager.requestLocationUpdates. Вы будете контролировать, как и когда вы обновляете свое местоположение и как вы используете службы геолокации. GPS ведет себя так же, как и любой другой, просто помните, что аккумулятор и время, чтобы найти в Android, являются основными проблемами. Вам нужно, чтобы ваше приложение быстро реагировало, и использование GPS может быть медленным с точки зрения блокировки и обновления.