2016-05-10 33 views
1

Gegeben:Fitness Daten: Zusammenführen mehrerer Datenquellen

Die App ist step/Abstandsdaten von proprietärer Fitness Tracker zu sammeln. Diese Daten sind in stündliche Sitzungen unterteilt, z. "Sitzung 4:00 - 5:00, XX Schritte, YY km".

Ich mag die Datenübertragung erreichen: App -> Fitness API (Google Fit, Health Kit) in einer konsistenten Art und Weise - das heißt: wenn Fitness-API hat bereits eine Sitzung 4: 00-5: 00 mit ZZ Schritte, dann sollen die Daten irgendwie zusammengeführt werden.

Offensichtliche Probleme entstehen, wenn wir die Situation betrachten: Tracker 1 ist an App gebunden, Tracker 2 ist direkt an Fitness API gebunden und der Benutzer trägt beides gleichzeitig. Dann werden die beiden sich schneid Trackers haben Zeitspannen mit unterschiedlichen Daten (z.B. Schritte auf Tracker 1, Schritte auf Tracker 2).

Die Fragen sind:

  1. Wie Google Fit/Health Kit fusionieren Datenpunkte, die gleiche/schneidende Zeitspanne haben (in meinem Fall, von 4.00 bis 05.00 Uhr)? Ist es "immer hinzufügen", auch wenn es zu Überschneidungen kommt?
  2. Gibt es dokumentierte Ansätze zur Durchführung einer solchen Synchronisierung? Ich würde sehr gerne jede Art von Informationen, auch eine abstrakte Sync-Strategie, begrüßen.
  3. Ist es besser, "sofortige" Daten in die Fitness-API einzufügen, anstatt manuell (in Sitzungen) zu aggregieren? Z.B. Ich erhalte sofortige Messung von Tracker, die immer „total Schritte für den aktuellen Tag“ ist, und dann, dass insgesamt Google Fit geben/Health Kit
  4. Wenn Antwort auf 3 „ja“, dann wird Fitness Speicher teilt diese Zeitpunkte automatisch in Sitzungen auf?

Antwort

1

Sie die Daten aggregieren können durch

.aggregate(DataType.TYPE_STEP_COUNT_DELTA, DataType.AGGREGATE_STEP_COUNT_DELTA)

wie here

+0

Ja, ich kann, aber was es in Zusammenhang mit meiner Frage an mich nicht geben? – Drew

+0

'.setTimeRange (startTime, endTime, TimeUnit.MILLISECONDS)' Laut Dokumentation sollte es die Step-Counts während dieser Zeitspanne aggregieren, anstatt sich zu überlappen. –

+0

Ok, das würde wahrscheinlich auf der Client-Seite helfen. Muss geprüft werden – Drew

Verwandte Themen