Android Wear и Google Fit: как заставить обновлять наборы данных между смартватором и смартфоном?
Из смартфона с помощью HistoryAPI
Если я прошу историю пользователя и DataType.TYPE_HEART_RATE_BPM
за последний прошлый час, начиная с текущего времени, я пропускаю данные за последние полчаса.
Если я попрошу их Google Fit с той же процедурой из smartwatch, все это прекрасно.
Так что это не вопрос извлечения данных, поскольку он зависит от устройства.
Может быть, это проблема синхронизации? Как программно принудительно обновлять записи в хранилище Google Fitness Store?
Это, о чем я говорю.
EDIT: так я создаю запрос
DataReadRequest readRequest = new DataReadRequest.Builder()
.setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
.enableServerQueries()
.read(dataType)
.build();
Ответы
Ответ 1
Предоставляли ли устройства достаточно времени для синхронизации всех данных перед выполнением запроса? Когда вы запрашиваете данные из HistoryAPI на телефоне, он будет извлечен из облака. Однако, когда вы запрашиваете данные с часов, это будут только локальные данные с этого носящего устройства. Если устройства были вне допустимого диапазона, я предполагаю, что после повторного подключения потребуется некоторое время, прежде чем данные часов будут доступны в облаке. Насколько я знаю, нет способа заставить такое обновление происходить быстрее/по требованию.
Возможным обходным решением будет проверка отметки времени точек данных и использование локальных данных на часах, если в запросе, сделанном на телефоне, отсутствуют данные.