Код: Выделить всё
private var fusedLocationClient: FusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(applicationContext)
override fun doWork(): Result {
val priority = Priority.PRIORITY_HIGH_ACCURACY
val cancellationTokenSource = CancellationTokenSource()
fusedLocationClient.getCurrentLocation(priority, cancellationTokenSource.token)
.addOnSuccessListener { location ->
Log.e("Location", "location is found: $location")
curLat = location.latitude
curLong = location.longitude
}
.addOnFailureListener { exception ->
Log.e("Location", "Oops location failed with exception: $exception")
}
}
Согласно https://stackoverflow.com/a/72038138/4696054 и нескольким другим ответам: «Если подсистема определения местоположения еще не была включена, она не знает, какое это было местоположение, поэтому возвращает значение null. Если вы хотите убедиться, что вы не получите значение null, запросите обновления."
Эта часть «запрос обновлений» меня сбивает с толку. Мне просто нужно получить местоположение один раз при запуске службы.
Как я могу это сделать и где инициализировать службу определения местоположения для обновления (другие ответы, которые я нашел, устарели )?
У Service Worker нет метода OnCreate, с помощью которого я мог бы инициализировать службу определения местоположения для
https://developer.android.com/develop/s ... st-updates и LocationRequest устарел (по крайней мере Create() устарел).
Предоставленные разрешения:
android.permission.ACCESS_COARSE_LOCATION и
android.permission.ACCESS_FINE_LOCATION и ACCESS_BACKGROUND_LOCATION
РЕДАКТИРОВАТЬ:
В @CommonWare я пробовал:
Код: Выделить всё
val currentBuilder = CurrentLocationRequest.Builder().setDurationMillis(30000)
currentLocationRequest = currentBuilder.build()
fusedLocationClient.getCurrentLocation(currentLocationRequest, null)
.addOnSuccessListener { location ->
Log.e("Location", "location is found: $location")
curLat = location.latitude
curLong = location.longitude
}
.addOnFailureListener { exception ->
Log.e("Location", "Oops location failed with exception: $exception")
}
Подробнее здесь: https://stackoverflow.com/questions/784 ... evelopment