Я не знаю много о Google Fit, так что, возможно, с этим легче взаимодействовать с часами.Однако я объясняю, как в прошлом я имел дело с Bluetooth-связью в аналогичном сценарии
. Для передачи данных устройство использует протокол Bluetooth Low Energy
.Прежде всего, вы должны прочитать общее описание того, как работает протокол.Хорошим началом будет веб-сайт Bluetooth SIG .
. Самое важное, что вам нужно знать, - это модель программного обеспечения.Каждое устройство выставляет Generic Attribute Profile (GATT)
.На мой взгляд, это похоже на API.В нем говорится, какие данные «предлагает» устройство и как их использовать.ГАТТ имеет следующую терминологию:
- Характеристика: Значение данных, передаваемое между клиентом и сервером, например, текущее напряжение батареи.
- Сервис: Набор связанных характеристик, которые работают вместе для выполнения определенной функции.Например, служба «Термометр состояния» включает характеристики для значения измерения температуры и интервал времени между измерениями.
- Дескриптор: Дескриптор предоставляет дополнительную информацию о характеристике.Например, характеристика значения температуры может иметь указание ее единиц измерения (например, Цельсия), а также максимальных и минимальных значений, которые может измерять датчик.Дескрипторы являются необязательными - каждая характеристика может иметь любое количество дескрипторов.
Bluetooth SIG определяет полный список общих служб и характеристик, а также способы их взаимодействия.Опять же, вся эта информация находится на их веб-сайте.
Итак, прежде чем вы начнете писать код для взаимодействия с часами, вам нужно знать, какие услуги и характеристики предоставляет устройство.Идеальной вещью было бы то, что руководство, которое поставлялось с часами, когда вы их купили, что-то говорило об этом ... но это, вероятно, не тот случай.
Таким образом, вы должны понять это самостоятельно.Первое, что вы можете сделать, это загрузить приложение, которое позволит вам подключиться к BLE-устройству, и изучить его профиль GATT.Я рекомендую LightBlue Explorer .Используя его, вы можете подключиться к часам и узнать характеристики и предоставляемые услуги.Затем вы идете и читаете спецификацию на веб-сайте Bluetooth SIG, и у вас есть все, что вам нужно для написания кода.
Однако производители устройств BLE не ограничиваются услугами и характеристиками, определенными Bluetooth SIG.Они могут создавать и реализовывать свои собственные.На изображении ниже я подключен к цифровой шкале.Как видите, у него много «стандартных» сервисов (индекс пользователя, состав тела, обслуживание аккумулятора и т. Д.), Но в окружении красного квадрата вы можете увидеть сервис с пятью характеристиками, которые не имеют названия.
Так как эта служба не была определена с помощью Bluetooth SIG, вам необходимо выполнить реверс-инжиниринг, который может быть очень сложным и разочаровывающим.Я загрузил официальное приложение устройства, включил Bluetooth Snoop HCI и затем по-разному взаимодействовал с устройством.После этого я открыл журнал с помощью Wireshark и проанализировал передачу пакетов Bluetooth, чтобы увидеть, как эти характеристики работают.
Наконец, когда вы узнаете, как работает Bluetooth в устройстве, вы готовынаписать собственное приложение для взаимодействия с ним.Я настоятельно рекомендую вам использовать библиотеку для реализации коммуникации, иначе вы будете много бороться.Лучшее, что я видел и использовал, это RxAndroidBle (у них есть другие версии библиотеки для разных платформ).
Это длительный процесс, и то, что я здесь написал, это лишь некоторая общая информация, поэтому у вас есть с чего начать.