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()
)