Является ли getLastLocation() запросом текущего местоположения?

Я использую слитое местоположение Google API. Я хотел бы получить текущее местоположение с высокой точностью без постоянного отслеживания местоположения с помощью интерфейса LocationListener.

У меня есть простой вариант использования: пользователь нажимает на кнопку, приложение будет отображать текущую широту и долготу (свежее местоположение).

Затем getLastLocation() извлекает местоположение из кеша (что означает, что в некоторых случаях оно не может быть точным) или делает запрос местоположения для получения свежих данных?

Если нет, возможно ли реализовать мой вариант использования без реализации интерфейса LocationListener?


person CuirMoustachu    schedule 13.03.2017    source источник
comment
getLastLocation из кеша, если вам нужно что-то точное, вам нужно использовать LocationListener   -  person tyczj    schedule 13.03.2017
comment
@tyczj У меня есть вопрос, связанный с этим, пожалуйста, ответьте. Если я использую только locationListener, вызывается ли onLocationChanged() один раз (в самом начале), хотя мое местоположение не изменилось (например, дома)?   -  person tahsinRupam    schedule 13.03.2017


Ответы (1)


Согласно документации на веб-сайте android.

Чтобы запросить последнее известное местоположение, вызовите метод getLastLocation(), передав ему свой экземпляр объекта GoogleApiClient. Сделайте это в обратном вызове onConnected(), предоставляемом клиентом Google API, который вызывается, когда клиент готов. Следующий фрагмент кода иллюстрирует запрос и простую обработку ответа:

Это означает, что он не будет обновлять местоположение, когда вы вызываете getLastLocation(). Это будет сделано в сервисе, основанном на обновлении.

Вы можете запросить обновления местоположения с помощью этой функции

protected void startLocationUpdates() {
    LocationServices.FusedLocationApi.requestLocationUpdates(
    mGoogleApiClient, mLocationRequest, this);
}
person Ruben Aalders    schedule 13.03.2017