Google map location service не обновляются координаты

Проблема следующая, создал сервис, который подключается и раз в пять секунд забирает координты пользователя, записывает их в базу данных. Проверял пока только на виртуальной машине, но, проблема в том, что даже если я менял в ручную своё местоположение в виртуальной машине, из LocationService всё еще приходят старые координаты. Исправляется это тоько после того, как я захожу в гугл карты и проверяю там свою локацию, после возвращаюсь в своё приложение, и оно уже записывает верные координаты. Не понимаю, в чем причина такого поведения, так ведь не должно быть? Может, я какое то разрешение не запросил? Хотя, вроде бы всё запрошено, так или иначе, старые координаты приходят.

Это цикл, в котором запрашиваются координаты. Он у меня в сервисе.

while (true) {
                    if (checkLocationPermission()) {
                        locationProvider =
                            LocationServices.getFusedLocationProviderClient(baseContext)
                        locationProvider.lastLocation.addOnCompleteListener { location ->

                            val cal = Calendar.getInstance()
                            var lat = location.result.latitude.toFloat()
                            var lon = location.result.longitude.toFloat()

                            requestUserLocation()

                            databaseRepository = DatabaseRepository(baseContext)
                            databaseRepository.addCordsToDatabase(
                                CordInfo(
                                    year = cal.get(Calendar.YEAR),
                                    month = cal.get(Calendar.MONTH) + 1,
                                    day = cal.get(Calendar.DAY_OF_MONTH),
                                    hours = cal.get(Calendar.HOUR_OF_DAY),
                                    minutes = cal.get(Calendar.MINUTE),
                                    latitude = lat,
                                    longitude = lon
                                )
                            )


                        }
                    }
                    delay(5000)
                }

Так же, пробовал вот так запрашивать, эффект всё тот же..:

val locationRequest = LocationRequest.create()
            .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
        locationProvider.requestLocationUpdates(
            locationRequest, object : LocationCallback() {
                override fun onLocationResult(locationResult: LocationResult?) {
                    super.onLocationResult(locationResult)
                    Log.i("FFFF", locationResult?.lastLocation.toString() + "LOCATION")
                }

                override fun onLocationAvailability(p0: LocationAvailability?) {
                    super.onLocationAvailability(p0)
                }
            },
            Looper.getMainLooper()
        )

Ответы (0 шт):