Вы должны позвонить
locationEngine.getLastLocation(new LocationEngineCallback<LocationEngineResult>() {
@Override
public void onSuccess(LocationEngineResult result) {
Location location = result.getLastLocation();
if (location != null) {
// process last location
}
}
@Override
public void onFailure(@NonNull Exception exception) {
// failure
}
});
Выше приведен асинхронный вызов, который возвратит местоположение последнего известного устройства.
С другой стороны,
locationComponent.getLastKnownLocation();
вернет последнее известное / отображаемое местоположение на карте по компоненту, которое в вашем случае всегда будет null
, потому что выкомпонент еще не активирован или не включен.
После того, как компонент будет активирован, включен и видим в первый раз, он сделает такой же асинхронный вызов, чтобы установить текущее местоположение.После этого вы можете положиться на последнее известное местоположение компонента в большинстве случаев, но для того, чтобы узнать местоположение исходного пользователя, вам определенно следует использовать LocationEngine
.