11

Vom Smartphone mit HistoryAPI Wenn ich für die letzte vergangene Stunde nach Benutzerhistorie und DataType.TYPE_HEART_RATE_BPM frage, vermisse ich Daten aus der letzten halben Stunde.Android Wear und Google Fit: Wie erzwinge die Aktualisierung von Datensätzen zwischen Smartwatch und Smartphone?

Wenn ich sie nach Google Fit mit dem gleichen Verfahren von der Smartwatch frage, ist alles in Ordnung.

Es ist also keine Frage des Datenabrufs, da es vom Gerät abhängt.

Vielleicht ist es ein Problem der Synchronisation? Wie erzwinge ich programmgesteuert eine Aktualisierung von Datensätzen im Repository des Google Fitness Store?

This ist, worüber ich spreche.

EDIT: Das ist, wie ich eine Anfrage

 DataReadRequest readRequest = new DataReadRequest.Builder() 
      .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS) 
      .enableServerQueries() 
      .read(dataType) 
      .build(); 
+0

Wie @Rakki s sagte in der Antwort auf [seine SO Frage] (http://stackoverflow.com/questions/26670836/google-fit-data-is-diffrent-von-device-to-device-with- same-account),> Wir können globale Daten (Cloud) lesen, indem wir '' enableServerQueries() ' > in' DataReadRequest' hinzufügen. Er bezieht sich auf ['enableServerQueries()'] (https://developers.google.com/android/reference/com/google/android/gms/fitness/request/SessionReadRequest.Builder#enableServerQueries%28%29) von ' SessionReadRequest.Builder'. Hast du das probiert? –

+0

Ja, habe ich, aber immer noch fehlende Teile der Daten. – user3290180

+0

Das gleiche Problem tritt auf, wenn die Uhr außerhalb der Reichweite des Telefons ist. Wenn sie erneut gepaart werden, kann ich die gesammelten Daten nicht erhalten. – user3290180

Antwort

3

Sie die Geräte genügend Zeit bauen gegeben haben, alle Daten zu synchronisieren, bevor eine Anfrage zu machen? Wenn Sie Daten von der HistoryAPI auf dem Telefon anfordern, wird sie aus der Cloud abgerufen. Wenn Sie jedoch Daten von der Uhr anfordern, handelt es sich nur um lokale Daten von diesem tragbaren Gerät. Wenn die Geräte außerhalb der Reichweite waren, gehe ich davon aus, dass es nach dem erneuten Verbinden einige Zeit dauern würde, bevor die Daten in der Cloud verfügbar sind. Soweit ich weiß, gibt es keine Möglichkeit, ein solches Update schneller/on demand zu erzwingen.

Eine mögliche Problemumgehung wäre, den Zeitstempel der Datenpunkte zu überprüfen und lokale Daten auf der Uhr zu verwenden, wenn Daten aus der am Telefon gestellten Anforderung fehlen.

+0

Ja, als sie verbunden wurden, wurde das Update in ungefähr einer Minute oder zwei durchgeführt. Als sie getrennt und wieder verbunden wurden, war das Update ein russisches Roulette und manchmal fehlten Daten. – user3290180

+0

eine Methode, um mindestens ein lokales Update zwischen den Geräten zu erzwingen wäre nützlich – user3290180

+0

Yeah die Daten werden jede Minute von der Uhr synchronisiert, wenn sie gepaart sind. Nicht sicher, wie lange es nach einem Reconnect dauert, aber es sollte eigentlich nicht viel mehr sein. Persönlich endete ich mit der Fit-API auf der Uhr, nur um diese Art von Problemen zu vermeiden. Hoffentlich verbessert Google die API in den kommenden Versionen. In der Zwischenzeit müssen Sie die Daten unter Verwendung der Zeitstempel selbst aggregieren. – TofferJ