Я пытаюсь получить текущее местоположение пользователя приложения каждые 2 секунды.
Я уже использую службу переднего плана с уведомлением (можно записывать местоположение, когда приложение находится в фоновом режиме). Но когда приложение переходит в режим ожидания, оно будет продолжать указывать 3 местоположения после того, как экран станет черным. Но тогда перестанет сообщать мне обновления местоположений.
Я использую FusedLocationProviderClient
, чтобы узнать свое текущее местоположение. У меня есть WakeLock
, чтобы служба работала, и это работает. Чтобы проверить это, у меня запущена корутина, и я могу сделать println("test")
, но когда я хочу свое местоположение, я ничего не получаю.
fusedLocationProviderClient?.getCurrentLocation(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY, cancellationSource?.token)?
.addOnSuccessListener {
val loc = it
println("${loc.latitude},${loc.longitude}")
postNewLocation(loc)
}?.addOnCanceledListener {
println("cancel")
}
Сразу после того, как я получаю последнее обновление местоположения, я получаю это LocationEngineResult == null
.
Кто-нибудь знает, что я делаю неправильно? Любая помощь или советы были бы замечательными.
Для контекста я использую Android 11 с targetdkversion 30.
Я новичок в kotlin, и это для школьного проекта, который я должен завершить.