З Новим роком та; міцного здоров’я з Google Fit! Розмови OCTO!

Після розробки спортивного додатку та внутрішньої конференції. Я зрозумів, що API Google Fit в основному були невідомі спільноті розробників. Що можна зробити з Google Fit? В чому справа ? Це справді корисно? Стільки питань, на які можна знайти відповіді в цій статті.
За допомогою Google Fit Google пропонує Фітнес-магазин ” з метою розміщення та централізації всіх даних, пов’язаних зі здоров’ям. Мета - створити своєрідний стандарт, щоб мати можливість легко обмінюватися даними між програмами. Тому він може зберігати всі типи даних, що стосуються фізичної активності, дієти та певних медичних даних. Google Fit доступний на Android, але також безпосередньо з Інтернету, саме тому Google пропонує два набори API: REST та Android.

Ця стаття буде присвячена тим, що стосуються Android, а ті, що призначені для Інтернету, залишаються такими ж повними.

міцного

1.1 Сімейна історія

Google Fit доступний через сім сімейств API, як показано на малюнку 1:

  • ІсторіяApi: Використовується для обробки даних із “Фітнес-магазин”(наприклад: вставки, видалення, оновлення). [Див. 3.1, 3.2].
  • ЗаписApi: Дозволяє підписатися на тип даних (наприклад, кількість користувацьких кроків), щоб отримувати сповіщення у разі зміни.
  • SensorApi: Дозволяє читати необроблені дані з датчика.
  • SessionApi: Використовується для обробки сеансів [Див. 3.3, 3.4].
  • BLE Api: Використовується для спілкування з носні пристрої та інші пристрої Bluetooth. Потім ви можете перенаправити вас на SensorApi для збору даних.
  • ConfigApi: Дозволяє створювати типи даних персоналізовані [Див. 2.2].
  • ЦіліApi: Надає доступ до цілей вашого користувача, а також до рівня їх досягнення. Існує три типи цілей: тривалість, відстань, кількість калорій.

1.2 Запит авторизації !

Google Fit обробляє конфіденційні дані, тому, перш ніж ви зможете повною мірою використовувати API, вам потрібно попросити дозволу у користувача.

Для цього вам доведеться пройти через GoogleApiClient, який визначає API, які ви хочете використовувати, а також їх сфери дії (права) пов'язані.

в результаті чого користувач повинен прийняти наступне діалогове вікно:

Зауважте, що користувач не може заборонити доступ до певних типів даних, як це має місце, наприклад, з дозволами програми. Тут він повинен дозволити доступ до всіх своїх даних "Фітнес" без винятку. Apple HealthKit дозволяє, наприклад, обмежувати доступ до певних типів даних (вік, стать тощо), одночасно приймаючи інші.

2.1 - Об'єкти

Якщо ви хочете вставляти їжу, фізичні вправи чи інше в Google Fit, ви будете використовувати наступні шість об’єктів:

  • Тип даних
  • Джерело даних
  • DataPoint
  • Набір даних
  • Сесія

2.2 Тип даних і Джерело даних

Тип даних зазвичай використовується для побудови джерела даних.

Google Fit надає вам декілька типів даних за замовчуванням для створення джерел даних та збагачення " Фітнес-магазин ” користувача. Вони об’єднані в 5 категорій. Дані, що стосуються спортивної діяльності ( Діяльність ), дані, пов’язані з позицією ( Оренда ), дані, що стосуються фізичного стану ( Тіло ) і, нарешті, дані, пов’язані з продуктами харчування ( Харчування ). Ми наводимо їх у наступній таблиці:

тип опору (int-enum)

Однак певні типи, які називаються HealthDataType, будуть заборонені перед реєстрацією в Google (ви можете подати запит за цією адресою [email protected]). Ці дані вважаються занадто чутливими для доступу до них за замовчуванням.

Крім того, якщо ви використовуєте допоміжний пристрій для збору даних цього типу, вам потрібно буде ввести модель пристрою, протоколи, які вони поважають (наприклад: ISO15197), і дані, з якими ви збираєтеся збирати з Google.

Нижче наведено перелік даних, які вважаються конфіденційними:

Якщо, незважаючи ні на що, жодна з цих даних вас не влаштовує, Google надає вам можливість створити власну та надати їй загальнодоступну, приватну, спільну та обмежену видимість. Це стосується Nike та Adidas, які створили дані власного типу.

2.3 Набір даних та DataPoint

Набір даних завжди створюється за допомогою джерела даних. Набір даних містить кілька точок даних, які представляють необроблені дані в один момент часу t. Візьмемо приклад, щоб пояснити наш дискурс:

Камілл вирішує взяти пробіжку в годину в неділю вранці. Нещодавно відновивши спорт, вона не може повністю закінчити біг підтюпцем. Вона бігала протягом перших 30 хвилин, потім пішла 10 хвилин, щоб відпочити, і продовжила біг протягом решти 20 хвилин.

Спробуємо тепер перекласти цю фізичну активність з предметами, які ми описали раніше. Спочатку вам потрібно вибрати, що ви хочете зберегти в " Фітнес-магазин ” . Посилаючись на таблицю 1 у 2.2, ми вирішили записати швидкість Камілли, а також її діяльність. Ми створюємо перший екземпляр набору даних з джерела даних типу даних ACTIVITY_SEGMENT (завжди посилаючись на таблицю в стовпці 2.2).

Потім ми вставляємо три точки даних, що відповідають трьом фазам бігу Камілем (біг, потім ходьба, потім біг). Зверніть увагу, оскільки ми вибрали джерело даних ACTIVITY_SEGMENT, поля точки даних повинні відповідати полям у таблиці 1 в 2.2, залежно від вибраного нами типу даних. Тут це буде FIELD_ACTIVITY, як зазначено у графі 3.

Таким же чином ми можемо створити другий набір даних із джерела даних типу TYPE_SPEED, що вимагає від нас вставити три точки даних із полями FIELD_SPEED .

Рисунок 4 пропонує узагальнити цей приклад графічно:

Ми зазначаємо, що, вибираючи джерело даних, ми встановлюємо своєрідний контракт, який зобов'язує нас надати точки даних полями, що відповідають типу даних джерела даних (див. Таблицю в 2.2). Отже, можна сказати, що набір даних об’єднує кілька точок даних одного і того ж „типу”. Ось чому існують сеанси, які об’єднають кілька наборів даних, які можуть бути різного типу.

Для завершення вставки ми використовуємо HistoryAPI:

У попередньому прикладі ми вставляли спортивні дані, але сценарій ідентичний вставці даних про їжу чи здоров'я (сон, зріст, вага тощо). Зверніть увагу, що тип даних описує структуру точок даних, які вам потрібно буде заповнити.

Тому для вставки даних вам потрібен джерело даних, яке вказує назву пакета, оскільки програма може отримати доступ лише до даних, які вона сама вставила у «Фітнес-магазин» (окремий випадок кількості кроків із RecordingApi та цілей із GoalsApi). Зауважте, що для вставки точки даних потрібно заповнити всі поля DataType, які ви вибрали.

3.2 Зчитування даних

Щоб прочитати дані з пробіжки Каміля, ми використовуємо такий запит:

Щоб видалити або оновити дані, принцип залишається незмінним, але вам доведеться використовувати об'єкти DataDeleteRequest та DataUpdateRequest .

Пам'ятати:

  • Усі поля точки даних повинні бути заповнені
  • Використовуйте HistoryApi.updateData, якщо вставити дві перекриваються точки даних, інакше запит на вставку буде проігноровано.
  • Ви не можете змінити дані, вставлені іншою програмою.
  • Ви не можете видалити дані, вставлені іншою програмою.
  • Запити обмежені до 1000 балів даних
  • Далі дані можна охоплювати в сеансах.

3.3 Вставити сесію

Як ми вже згадували раніше, можна створювати сеанси, ми повинні використовувати SessionApi.

На даний момент Google пропонує 124 спортивні заходи для ваших занять.

Сеанси представляють групування наборів даних, для прикладу Каміля сеанс буде типу RUNNING. Хоча вона й ходила, спочатку для неї це все ще був заняття бігом. Тому будьте обережні, щоб не переплутати діяльність, призначену точці даних та сеансу.

Більш конкретно, у вас є два способи вставити сеанс, або безпосередньо за допомогою ручної вставки.

Або розпочавши запис.

Запускаючи запис, Google Fit сам збирає точки даних і вставляє їх у розділ “ Фітнес-магазин ” . Зручно !

3.4 Прочитати сесію

Ще одна приємна річ щодо API Google Fit полягає в тому, що Google автоматично оцінює спалені калорії користувачів на основі фізичної активності, якщо залишити їх порожніми.

Google Fit пропонує комплексну платформу, яка об’єднує дані про спорт, здоров’я та продукти харчування в одному місці, щоб забезпечити централізоване та зв’язане середовище, щоб користувач мав кращий досвід.

Однак Google попереджає, що користування Google Fit має бути зрозумілим для користувача, тому завжди пояснюється, а також попереджує, що Google Fit не можна використовувати в комерційних цілях або для інших даних, крім зазначених вище. Нарешті, якщо типи даних, надані платформою, вас не влаштовують, ви завжди можете створити власні. Нагадаємо, це справа Nike та Adidas.

З часом Google Fit вдосконалюється і тепер дозволяє:

  • Автоматично розпізнавати початок діяльності
  • Повідомляти про те, що певні дані надходять у "фітнес-магазин", тим самим даючи можливість створювати послідовний досвід користування (тобто: заохочуйте користувача займатися діяльністю після їжі із занадто великою кількістю калорій; заохочуйте користувача пити після тривалої тренування,. .)
  • Збільште федерацію користувачів до вашого додатка: я маю тут на увазі, що як спортсмен я завжди віддаю перевагу програмі, яка буде сумісна з Google Fit і яка може збагатити мою існуючу екосистему, ніж ізольованій програмі.

Ці API потрібно знати, і їх інтеграція в Android Wear відкриває великі перспективи.