Получить текущее местоположение в Android DevelopmentAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Получить текущее местоположение в Android Development

Сообщение Anonymous »

У меня есть сервис-воркер, который запускается каждые 10 минут и которому каждый раз нужно получать текущую широту и долготу, и я использую следующий код:

Код: Выделить всё

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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Получить текущее местоположение в Android Development
    Anonymous » » в форуме Android
    0 Ответы
    67 Просмотры
    Последнее сообщение Anonymous
  • Получить текущее местоположение в Android Development
    Anonymous » » в форуме Android
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Нет сертификата подписания "" "Найдено:" IOS Development Development ".
    Anonymous » » в форуме IOS
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous
  • Невозможно запустить настроенный веб -сервер Development Studio Development
    Anonymous » » в форуме C#
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как получить текущее имя функции, имя и местоположение файла (путь) в Python? И как получить данные вызывающей функции?
    Anonymous » » в форуме Python
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»