2016-05-03 4 views
2

Я создаю довольно простое приложение в течение нескольких недель, которое активирует активность с моего трекера Fitbit Flex до Google Fit. Все очень просто: он создал источники данных и использует их для увеличения количества калорий в последний час, количества шагов и расстояния до Google Fit. Он также подталкивает мой вес, если я зарегистрирую его с помощью приложения Fitbit.Отправить информацию о весе/расстояние с помощью API-интерфейса Google Fit REST

Каждый час он подталкивает эти три метрики в трех разных наборах данных, каждый из которых имеет единую точку данных. Например: с 10:00 до 10:59, 451 шаг. Это хорошо работает для всех трех этих показателей.

Один раз в день набор данных с диапазоном от 00:00 до 23:59 отправляет мой вес в Google Fit. Этот набор данных также имеет одну точку данных.

Эта система, кажется, работает достаточно хорошо для моего счета шага и подсчета количества калорий. Это не идеально, потому что мой счетчик шагов без каких-либо связанных действий. Но Google Fit успешно получает данные и сохраняет их.

Однако Google Fit, похоже, не подхватил мой сообщаемый вес. Также Google Fit, похоже, не помнит расстояние, когда я его отправляю.

типы данных, которые я использую являются:

  • com.google.calories.expended
  • com.google.distance.delta
  • com.google.step_count.delta
  • ком. google.weight

исходный код моего приложения на Github: https://github.com/JC5/fitsync

Какие-нибудь советы или рекомендации? Можно ли использовать REST API для?

+0

Вы можете проверить этот [предыдущий SO-вопрос] (http://stackoverflow.com/questions/26929699/add-read-weight-and-height-in-googlefit-android), на который ответил Хосе. Он показывает, как создать новый объект DataSet для веса. Также он указал, что добавьте [правое разрешение] (http://stackoverflow.com/questions/26390192/googlefit-sample-not-working/26959071#26959071). Надеюсь, это поможет –

+1

Возможно, я нашел решение в этом ответе.Это не связано с разрешениями, но, вероятно, с моим набором данных: я не дал ему «мгновенную» метку времени, а скорее «начало сегодняшнего дня до конца сегодняшнего дня». Это может смутить Google Fit. Я отчитаю. –

+0

Несомненно, просто дайте обновленную информацию о любом прогрессе, если вы столкнулись с другой проблемой, просто разместите ее здесь, если она по-прежнему связана с вашим исходным сообщением. :) –

ответ

1

Да. Это question привести меня в правильном направлении. Как оказалось, типы полей, которые я использую, являются мгновенными типами полей (см. Выше). Они измеряются только в один момент времени. Противоположным будет тип агрегированного поля.

Мой вес измеряется прямо здесь и сейчас, и значение не агрегируется в течение дня или недели, а одно мгновенное измерение. В этот момент я весом 82,1 кг.

Итак, когда вы создаете набор данных с одним адресом данных (который вам нужен для отправки такого мгновенного типа поля в Google), вы должны убедиться, что время начала и время окончания совпадают. В конце концов, это была бы неправильная запись, если бы она не была мгновенной.

Набор данных я послал в Google Fit, который правильно зарегистрирован в Google приступе, заключается в следующем:

{ 
    "minStartTimeNs":1462358894000000000, 
    "maxEndTimeNs":1462358894000000000, 
    "dataSourceId":"your-data-id", 
    "point":[ 
     { 
     "dataTypeName":"com.google.weight", 
     "originDataSourceId":"", 
     "startTimeNanos":1462358894000000000, 
     "endTimeNanos":1462358894000000000, 
     "value":[ 
      { 
       "fpVal":81.2 
      } 
     ] 
     } 
    ] 
} 

расстояние метрика еще не зарегистрирована, но могут быть и другие недокументированные возможности там.

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

  • Нет связанных вопросов^_^