Я пытаюсь отследить местоположение с помощью клиента записи для Google Fit на Android, но я не уверен, возможно ли вообще использовать TYPE_LOCATION_SAMPLE. Шаги записи (TYPE_STEP_COUNT_DELTA) и сегменты активности (TYPE_ACTIVITY_SEGMENT) работают нормально, но подписка на TYPE_LOCATION_SAMPLE, похоже, ничего не делает.
Я могу успешно подписаться на тип данных TYPE_LOCATION_SAMPLE и у меня есть источник данных, но если Я запрашиваю у клиента истории данные, там ничего нет. Опять же, это работает для шагов и действий - только не для местоположения.
Я удостоверился, что разрешение на местоположение предоставлено. Я переехал, чтобы изменить местоположение. Я тоже пробовал с GoogleSignIn.getAccountForExtension
, все еще ничего. Не возможно ли записать местоположение таким образом, или я просто ошибаюсь?
Я подписываюсь на данные о местоположении следующим образом:
Fitness
.getRecordingClient(activity, GoogleSignIn.getLastSignedInAccount(activity.applicationContext)!!)
.subscribe(DataType.TYPE_LOCATION_SAMPLE)
Я запрашиваю исторические данные, например, такие:
val readRequest = DataReadRequest.Builder()
.read(DataType.TYPE_LOCATION_SAMPLE)
.setTimeRange(from.timeInMillis, to.timeInMillis, TimeUnit.MILLISECONDS)
.build()
Fitness
.getHistoryClient(activity, GoogleSignIn.getLastSignedInAccount(activity.applicationContext)!!)
.readData(readRequest)
.addOnSuccessListener { dataReadResponse ->
//returns 1 empty dataset
}
Обновление: я попытался вставить местоположения вручную с помощью HistoryClient.insertData
, просто чтобы посмотреть, смогу ли я заставить что-то работать таким образом. Я все еще не могу получить никаких данных при запросе истории, но дельта расстояния изменилась в зависимости от местоположений, которые я добавил, поэтому что-то происходит. Но я все еще не могу получить фактические местоположения из истории.