0

Мне просто интересно, потому что это не имеет смысла.android - onLocationChanged вызывается, даже если нет интернета

У меня есть GoogleApiClient, который я соединяюсь, и после этого обновления запроса на местоположение с помощью

LocationServices.FusedLocationApi.requestLocationUpdates(
googleApiClient, mLocationRequest, this); 

Теперь, странная вещь - onLocationChanged(Location location) называется, даже когда я положил телефон в самолетном режиме! Нет Интернета, и я все еще получаю обновления местоположения. Как это возможно? являются ли эти обновления надежными и точными?

ответ

0

В обычных ситуациях местоположение рассчитывается на основе одного или нескольких датчиков. Данные включают:

  • Сотовые сети.
  • Окружающие сети Wi-Fi.
  • Окружающие радиомаяки Bluetooth.
  • GPS.

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

Вы можете обнаружить программно точность объекта местоположения по телефону:

location.getAccuracy();

Который является точность местоположения в метрах.

Edit: Позвольте мне добавить некоторые важные моменты, которые могут быть интересны для вас:

  • GPS первое исправление действительно медленный, если он не имеет помощи от любого другого радио. Это может занять минут, пока вы не увидите первое место.
  • Для получения сигналов GPS требуется четкое представление о небе. Так что это не будет работать в помещении.
  • GPS является одним из наиболее энергоемких способов получить местоположение, по сравнению с другими методами.
0

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