У меня есть простое приложение, которое отображает текущую скорость пользователя, и для этого я использую FusedLocationProviderClient. Когда я запускаю приложение и начинаю двигаться, все работает нормально, скорость обновляется правильно. Однако, когда я перестаю двигаться, скорость не падает до 0. Оно просто продолжает показывать последнее сообщенное значение.
Важное примечание: я тестирую приложение в эмуляторе Android Studio, используя Расширенные элементы управления -> Местоположение -> Маршруты для имитации движения.
Я получаю скорость в этом обратном вызове:
locationCallback = object : LocationCallback() {
override fun onLocationResult(locationResult: LocationResult) {
for (location in locationResult.locations) {
val speedMetersPerSec = location.speed
val speedKmH = (speedMetersPerSec * 3.6).toInt()
tvSpeed.text = "$speedKmH km/h"
}
}
}
А вот моя конфигурация запроса местоположения:
val locationRequest = LocationRequest.Builder(
Priority.PRIORITY_HIGH_ACCURACY,
1000
).setMinUpdateIntervalMillis(500)
.build()
Подробнее здесь: https://stackoverflow.com/questions/798 ... ops-moving