2016-05-10 5 views
1

Учитывая:Фитнес данные: Объединение нескольких источников данных

Приложение является сбор шагов/расстояние данные от патентованной фитнес-трекер. Эти данные разделяются на часовые сеансы - например, "Сессия 4:00 - 5:00, XX Этапы, YY км".

Я хочу, чтобы достичь передачи данных: App -> Фитнес API (Google Fit, Kit Здоровье) в согласованном порядке - то есть: если Fitness API уже сеанс 4: 00-5: 00 с ZZ шагов, то данные должны быть каким-то образом объединены.

Очевидные проблемы возникают, если мы рассмотрим ситуацию: Tracker 1 привязан к App, Tracker 2 привязан к API Fitness напрямую, и пользователь носит оба в одно и то же время. Тогда два пересекающихся трекеры timespans с различными данными (например шаги по Tracker 1, шагов на Tracker 2).

Вопросы:

  1. Как Google Fit/Health Kit слияние точек данных, которые имеют такое же/пересекающий отрезок времени (в моем случае, 4:00 - 5:00)? Является ли он «всегда добавлять», даже если происходит перекрытие?
  2. Есть ли документированные подходы к выполнению такой синхронизации? Я бы очень приветствовал любую информацию, даже абстрактную стратегию синхронизации.
  3. Лучше ли вставлять «мгновенные» данные в API Fitness, а не вручную агрегировать (в сеансы)? Например. Я получаю мгновенное измерение от трекера, который всегда «всего шагов за текущий день», а затем дать, что всего в Google Fit/аптечка
  4. Если ответ на 3 «да», тогда хранение Фитнес автоматически разделить эти моменты на сеансы?

ответ

1

Вы можете агрегировать данные по

.aggregate(DataType.TYPE_STEP_COUNT_DELTA, DataType.AGGREGATE_STEP_COUNT_DELTA)

, как описано here

+0

Да, я могу, но что это дает мне в контексте моего вопроса? – Drew

+0

'.setTimeRange (startTime, endTime, TimeUnit.MILLISECONDS)' В соответствии с документацией он должен собирать количество шагов в течение этого промежутка времени вместо перекрытия. –

+0

Хорошо, это, вероятно, поможет на стороне клиента. Нужно проверить – Drew

Смежные вопросы