Невозможно отследить местоположение (TYPE_LOCATION_SAMPLE) в Google Fit для Android - PullRequest
0 голосов
/ 14 февраля 2020

Я пытаюсь отследить местоположение с помощью клиента записи для 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, просто чтобы посмотреть, смогу ли я заставить что-то работать таким образом. Я все еще не могу получить никаких данных при запросе истории, но дельта расстояния изменилась в зависимости от местоположений, которые я добавил, поэтому что-то происходит. Но я все еще не могу получить фактические местоположения из истории.

1 Ответ

1 голос
/ 17 февраля 2020

Вы можете читать только данные о местоположении, которые написало ваше приложение.

Это описано в разделе Исключения в документации Publi c Типы данных.

...