Android getLastKnownLocation не обновляется - PullRequest
1 голос
/ 07 мая 2020

Я делаю приложение, которое получает местоположение пользователя, для этого я использую getLastKnownLocation, проблема в том, что если я изменю местоположение моего виртуального телефона на другое место, getLastKnownLocation по-прежнему дает то же местоположение, только обновляется, если я открою Google Maps. Есть ли способ узнать фактическое местонахождение устройства?

1 Ответ

1 голос
/ 07 мая 2020

Поведение LocationManager.getLastKnownLocation, которое вы описываете, точно соответствует определению этого метода :

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

Следовательно, если используется какое-либо другое приложение, запрашивающее фактическое местоположение (например, Google Maps) кэшированное значение обновляется, и вы можете получить его через getLastKnownLocation.

Если вы активно хотите получить новое местоположение, вы должны использовать getCurrentLocation или продолжать использовать getLastKnownLocation, но принудительно указать местоположение обновить, прежде чем позвонить по номеру requestSingleUpdate

...