API Wearable Data Layer, входящий в состав сервисов Google Play, обеспечивает канал связи между носимыми устройствами (например, умными часами) и подключенными портативными устройствами (обычно смартфонами). Это позволяет синхронизировать и передавать данные между устройствами.
Примечание: Этот API доступен только на часах Wear OS и сопряженных устройствах Android. При сопряжении часов Wear OS с телефонами iOS приложения могут обращаться к другим облачным API при наличии подключения к Интернету. Подробнее об этих API см. в разделе «Сетевой доступ и синхронизация на Wear OS» .
Внимание: поскольку API уровня данных предназначены для связи между портативными и носимыми устройствами, это единственные API, которые можно использовать для настройки связи между этими устройствами. Например, не пытайтесь открывать низкоуровневые сокеты для создания канала связи.
Распространенные варианты использования
API уровня данных особенно полезен для случаев использования в сфере фитнеса и мультимедиа.
Фитнес-приложения
Отправка данных о тренировках из приложения Wear OS в мобильное приложение. Фитнес-приложениям часто требуется записывать данные о тренировках, собранные часами, в мобильное приложение или в Health Connect . При использовании API Data Layer для передачи данных используйте клиент сообщений для отправки данных о тренировках из приложения Wear OS в мобильное приложение для записи в Health Connect.
Транслируйте данные в режиме реального времени на мобильное устройство во время домашней тренировки
Типичный сценарий домашних тренировок — потоковая передача данных о частоте пульса с устройства Wear OS на мобильное устройство и отображение актуальной информации о частоте пульса на экране мобильного устройства. Для потоковой передачи этих данных используйте клиент канала .
Медиа-приложения
Для управления медиаплеером посредством паузы/возобновления/запуска/завершения с часов на телефон используйте клиент сообщений .
Варианты общения
Данные передаются одним из следующих способов:
- Напрямую , когда между устройством Wear OS и другим устройством установлено Bluetooth-соединение.
- По доступной сети , например LTE или Wi-Fi, используя в качестве посредника сетевой узел на серверах Google.
Все клиенты Data Layer могут обмениваться данными как через Bluetooth, так и через облако, в зависимости от доступных устройств. Предположим, что данные, передаваемые через Data Layer, в какой-то момент могут использовать серверы Google.
Bluetooth
При подключении устройств по Bluetooth Data Layer использует это соединение. Между устройствами используется единый зашифрованный канал связи, использующий стандартное шифрование Bluetooth, управляемый сервисами Google Play.
Облако
При отсутствии Bluetooth данные автоматически перенаправляются через Google Cloud. Все данные, передаваемые через Google Cloud, защищены сквозным шифрованием.
Безопасность коммуникаций
Сервисы Google Play применяют следующие ограничения для обеспечения более безопасного обмена данными между приложением, установленным на устройстве Wear OS, и тем же приложением, установленным на соседнем портативном устройстве:
- Имя пакета должно совпадать на всех устройствах.
- Подпись пакета должна совпадать на всех устройствах.
Никакие другие приложения не имеют доступа к данным независимо от типа подключения.
Настраивать
API Wearable Data Layer имеет следующие зависимости:
- Последняя версия сервисов Google Play .
- Устройство Wear OS или эмулятор Wear OS.
Включите следующую зависимость в файл build.gradle вашего модуля Wear:
dependencies {
...
implementation("com.google.android.gms:play-services-wearable:19.0.0")
}
Облегчить первоначальный процесс сопряжения
Horologist предоставляет несколько вспомогательных библиотек, работающих поверх API платформы. В их число входит библиотека уровня данных , которая помогает установить соединение между мобильным устройством и устройством Wear OS. Кроме того, Horologist предоставляет удобные API для выполнения следующих задач:
- Установите приложение на другое устройство.
- Запустите приложение на другом устройстве.
- Запустите определенное действие на другом устройстве.
- Запустите сопутствующее приложение.
Доступ к уровню данных
Чтобы вызвать API уровня данных, используйте класс Wearable
для получения экземпляров различных клиентских классов, таких как DataClient
и MessageClient
.
Более подробную информацию можно найти в примере DataLayer .
Используйте минимальный клиент
Чтобы создать клиента, смотрите следующий пример кода:
Котлин
val dataClient: DataClient = Wearable.getDataClient(context)
Ява
DataClient dataClient = Wearable.getDataClient(context);
Контекстом может быть любой допустимый контекст Android. Если вы используете API в рамках Activity
, используйте метод getDataClient()
класса Wearable
. Это позволяет отображать некоторые взаимодействия в виде диалоговых окон, а не уведомлений, например, когда пользователю предлагается обновить версию сервисов Google Play.
По умолчанию обратные вызовы к слушателям выполняются в основном потоке пользовательского интерфейса приложения. Чтобы обратные вызовы выполнялись в другом потоке, используйте объект WearableOptions
для указания пользовательского Looper
:
Котлин
runBlocking { Wearable.getDataClient(context, options) }
Ява
WearableOptions options = new WearableOptions.Builder().setLooper(myLooper).build(); DataClient dataClient = Wearable.getDataClient(context, options);
Более подробную информацию см. в справочнике WearableOptions.Builder
.
При необходимости пересоздайте клиентские экземпляры.
Клиенты API для носимых устройств, такие как DataClient
и MessageClient
, не требуют больших затрат на создание. Поэтому вместо того, чтобы хранить существующие клиенты, создавайте их заново по мере необходимости, используя стиль, подходящий вашему приложению.
Состояние клиента, например набор зарегистрированных прослушивателей, является общим для всех клиентов и сохраняется, если сервисы Google Play обновляются во время работы приложения.