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 уровня данных, используйте мессенджер для отправки данных о тренировках из приложения 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 уровня данных носимых устройств имеет следующие зависимости:
- Последняя версия сервисов 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. Кроме того, она предоставляет удобные API для выполнения следующих задач:
- Установите приложение на другое устройство.
- Запустите приложение на другом устройстве.
- Запустите определенное действие на другом устройстве.
- Запустите сопутствующее приложение.
Получите доступ к слою данных.
Для вызова API уровня данных используйте класс Wearable , чтобы получить экземпляры различных клиентских классов, таких как DataClient и MessageClient .
Для получения более подробной информации обратитесь к примеру DataLayer .
Используйте минимальный клиент.
Для создания клиента воспользуйтесь следующим примером кода:
Котлин
val dataClient: DataClient = Wearable.getDataClient(context)
Java
DataClient dataClient = Wearable.getDataClient(context);
Контекстом может быть любой допустимый контекст Android. Если вы используете API в рамках Activity , используйте метод getDataClient() класса Wearable . Это позволяет отображать определенные взаимодействия в виде диалогов, а не уведомлений, например, когда пользователю предлагается обновить версию сервисов Google Play.
По умолчанию обратные вызовы обработчиков событий выполняются в основном потоке пользовательского интерфейса приложения. Чтобы обратные вызовы выполнялись в другом потоке, используйте объект WearableOptions для указания пользовательского Looper :
Котлин
runBlocking { Wearable.getDataClient(context, options) }
Java
WearableOptions options = new WearableOptions.Builder().setLooper(myLooper).build(); DataClient dataClient = Wearable.getDataClient(context, options);
Для получения более подробной информации см. справочник WearableOptions.Builder .
При необходимости пересоздайте экземпляры клиента.
Клиенты API для носимых устройств, такие как DataClient и MessageClient , недороги в создании. Поэтому вместо того, чтобы хранить готовые клиенты, создавайте их заново по мере необходимости, используя стиль, подходящий для вашего приложения.
Состояние клиента, например, набор зарегистрированных слушателей, является общим для всех клиентов и сохраняется при обновлении сервисов Google Play во время работы приложения.