The documentation говорит: Returns a Location indicating the data from the last known location fix obtained from the given provider.
Кроме того, о "устаревшую месте": This can be done without starting the provider. Note that this location could be out-of-date, for example if the device was turned off and moved to another location.
("Это" относится к получению последнего известного местоположения).
Кроме того, взяты из LocationProvider docs: Each provider has a set of criteria under which it may be used; for example, some providers require GPS hardware and visibility to a number of satellites; others require the use of the cellular radio, or access to a specific carrier's network, or to the internet. They may also have different battery consumption characteristics or monetary costs to the user.
если телефон включен GPS, не это отслеживание GPS/обновление как телефон перемещается?
Ну, это так, но не постоянно. Это связано с потреблением батареи, если телефон постоянно обновляет местоположение GPS, время автономной работы может сильно пострадать. Расположение GPS обычно обновляется, когда приложение запрашивает его. Но даже этот запрос не гарантирует успеха. Например, предположим, что вы вошли в туннель. Некоторые заявки на обновление координат GPS прямо перед входом в туннель, и это удается. Теперь вы вошли в туннель длиной 5 км. Скорее всего, ваше устройство не сможет получить GPS-исправление из туннеля, поэтому в течение следующих 5 км (по крайней мере) getLastKnownLocation()
вернет устаревшее значение, , так как устройства последнего известного местоположения находились у входа в туннель.
Что вы можете сделать - это явно запросить обновление местоположения GPS, но это может занять некоторое время, и нет никаких гарантий того, что он будет успешным.
'Местоположение GPS обычно обновляется, когда какое-то приложение запрашивает его' - 'getLastKnownLocation()' не запрашивает его и, таким образом, сообщает ему об обновлении?Тогда как/когда еще он обновляется? – mmcrae
Альтернатива в обучающих программах Android - реализовать «LocationListener» - но все это делает обратный звонок для обновления GPS - это не само обновление GPS. Итак, как лучше использовать 'LocationListener' (единственный другой вариант, упомянутый для получения GPS), чем просто вызов' getLastKnownLocation() '? Документы показывают, что это не означает, что на самом деле обновление GPS - 'getLastKnown' просто захватывает все последние GPS-данные, а' LocationListener 'дает вам возможность узнать, когда GPS обновляется. Кстати, я ценю ваше время, помогая мне в этом. – mmcrae
'getLastKnownLocation()' просто получает последнее известное местоположение, оно не обновляет его. Он обновляется, когда в каком-либо приложении говорится: «Привет, Android, пожалуйста, обновите местоположение GPS». Когда какое-то приложение вызывает 'getLastKnownLocation()', он в основном говорит: «Привет, Android, не могли бы вы рассказать мне, что такое последнее известное место?». Он не просит обновить местоположение. Это «последнее известное местоположение» хранится где-то в ОС Android. –