11

Ze smartfona za pomocą HistoryAPI Jeśli pytam o historię użytkownika i DataType.TYPE_HEART_RATE_BPM przez ostatnią ostatnią godzinę, począwszy od bieżącego czasu, tracę dane z ostatnich pół godziny.Android Wear i Google Fit: jak wymusić aktualizację zestawów danych między smartwatchem a smartfonem?

Jeśli poprosię ich o Google Fit przy użyciu tej samej procedury z zegarka, wszystko w porządku.

To nie jest kwestia pobierania danych, ponieważ zależy to od urządzenia.

Może to problem z synchronizacją? W jaki sposób programowo wymuszam aktualizację rekordów w repozytorium Google Fitness Store?

This o czym mówię.

EDIT: to jest jak zbudować żądania

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

Jak @Rakki powiedział w odpowiedzi na [jego pytanie SO] (http://stackoverflow.com/questions/26670836/google-fit-data-is-diffrent-from-device-to-device-with- samo konto),> Możemy odczytać dane globalne (chmura), dodając '.enableServerQueries()' > w 'DataReadRequest'. Odwołuje się do ['enableServerQueries()'] (https://developers.google.com/android/reference/com/google/android/gms/fitness/request/SessionReadRequest.Builder#enableServerQueries%28%29) z '' SessionReadRequest.Builder'. Czy próbowałeś tego? –

+0

Tak, udało mi się, ale nadal brakuje części danych. – user3290180

+0

Ten sam problem występuje, gdy zegarek jest poza zasięgiem telefonu. Kiedy są ponownie sparowane, nie mogę uzyskać danych zebranych w międzyczasie. – user3290180

Odpowiedz

3

dałeś urządzeń wystarczająco dużo czasu, aby zsynchronizować wszystkie dane przed dokonaniem prośbę? Gdy zażądasz danych z interfejsu Historii w telefonie, zostanie on pobrany z chmury. Jeśli jednak zażądasz danych z zegarka, będą to dane lokalne tylko z tego urządzenia do noszenia. Jeśli urządzenia są poza zasięgiem, zakładam, że zanim dane będą dostępne w chmurze, po ponownym podłączeniu zajmie to trochę czasu. O ile wiem, nie ma możliwości wymuszenia takiej aktualizacji szybciej/na żądanie.

Możliwe obejście polega na sprawdzeniu znacznika czasu w punktach danych i wykorzystaniu lokalnych danych na zegarku, jeśli brakuje danych w żądaniu wykonanym w telefonie.

+0

Tak, po podłączeniu aktualizacja została wykonana za minutę lub dwie. Po rozłączeniu i ponownym podłączeniu aktualizacja była rosyjską ruletką, a czasami brakowało danych. – user3290180

+0

metoda wymuszania co najmniej lokalnej aktualizacji między urządzeniami byłaby przydatna. – user3290180

+0

Tak, dane są synchronizowane z zegarka co minutę, gdy są sparowane. Nie wiem, ile czasu zajmuje ponowne podłączenie, ale nie powinno to być nic więcej. Osobiście korzystałem z Fit API tylko na zegarku, aby uniknąć tego rodzaju problemów. Mam nadzieję, że Google ulepszy API w nadchodzących wydaniach. W międzyczasie wydaje się, że musisz zebrać dane samodzielnie, używając znaczników czasu. – TofferJ