API уровня данных для носимых устройств, который входит в состав сервисов Google Play, обеспечивает канал связи между носимыми устройствами (например, умными часами) и подключенными к ним портативными устройствами (обычно смартфонами). Это способ синхронизировать и передавать данные между устройствами.
Примечание. Этот API доступен только на часах с Wear OS и подключенных к ним устройствах Android. Приложения на часах Wear OS, подключенных к телефонам iOS, могут отправлять запросы к другим облачным API, если есть подключение к интернету. Подробнее о других API можно узнать в разделе Доступ к сети и синхронизация на устройствах Wear OS.
Внимание! Поскольку API уровня данных предназначены для обмена данными между мобильными и носимыми устройствами, это единственные API, которые можно использовать для настройки связи между этими устройствами. Например, не пытайтесь открыть сокеты низкого уровня, чтобы создать канал связи.
Примеры использования
Используйте Data Layer API, если взаимодействие происходит только между часами и телефоном. Пример:
- Пульт дистанционного управления. Часы можно использовать как пульт дистанционного управления для телефона, например для управления аудиоплеером, слайд-шоу или камерой.
- Запуск приложений на мобильных устройствах. Функция "Открыть на телефоне".
- Передача данных аутентификации. Отправка токена сеанса с телефона на часы во время первоначальной настройки.
Во многих распространенных сценариях следует использовать существующую облачную инфраструктуру, например:
- Сохранение данных. Тренировки, заметки.
- Получение контента. Загрузка списка прошлых тренировок, скачивание музыки, получение данных о погоде.
- Статус синхронизации. Если пользователь изменит фото профиля в интернете, часы получат обновление из облака, а не из телефона.
В таких случаях используйте собственные конечные точки и инфраструктуру, а не Data Layer API.
Способы связи
Данные передаются одним из следующих способов:
- Напрямую, если между устройством Wear OS и другим устройством установлено подключение по Bluetooth.
- Через доступную сеть, например LTE или Wi-Fi, используя сетевой узел на серверах Google в качестве посредника.
Все клиенты уровня данных могут обмениваться данными через Bluetooth или облако в зависимости от того, какие подключения доступны устройствам. Предполагается, что данные, передаваемые с помощью уровня данных, в какой-то момент могут использовать серверы, принадлежащие Google.
Bluetooth
Когда устройства подключены по Bluetooth, уровень данных использует это подключение. Между устройствами устанавливается один зашифрованный канал с использованием стандартного шифрования Bluetooth, которым управляют сервисы Google Play.
Cloud
Если Bluetooth недоступен, данные автоматически передаются через Google Cloud. Все данные, передаваемые через Google Cloud, шифруются сквозным методом.
Безопасность связи
Чтобы обеспечить более безопасную связь между приложением, установленным на устройстве Wear OS, и тем же приложением, установленным на находящемся рядом портативном устройстве, сервисы Google Play применяют следующие ограничения:
- Название пакета должно быть одинаковым на всех устройствах.
- Подпись пакета должна быть одинаковой на всех устройствах.
Другие приложения не имеют доступа к данным независимо от типа подключения.
Настроить
Wearable Data Layer API имеет следующие зависимости:
- Последняя версия сервисов Google Play.
- Устройство Wear OS или эмулятор Wear OS.
Добавьте в файл build.gradle модуля Wear следующую зависимость:
dependencies {
...
implementation("com.google.android.gms:play-services-wearable:20.0.1")
}
Упростить первоначальное подключение.
Horologist предоставляет несколько вспомогательных библиотек на основе API платформы. В него входит библиотека уровня данных, которая помогает установить связь между мобильным устройством и устройством Wear OS. Кроме того, он предоставляет удобные API для следующих действий:
- Установите приложение на другом устройстве.
- Запустите приложение на другом устройстве.
- Запустить определенное действие на другом устройстве.
- Запустите приложение-компаньон.
Как получить доступ к уровню данных
Чтобы вызвать Data Layer API, используйте класс Wearable, чтобы получить экземпляры различных клиентских классов, таких как DataClient и MessageClient.
Дополнительную информацию можно найти в примере DataLayer.
Используйте минимальный клиент
Чтобы создать клиента, используйте следующий пример кода:
val dataClient = Wearable.getDataClient(this)
val available = try { GoogleApiAvailability.getInstance() .checkApiAvailability(client) .await() true } catch (e: AvailabilityException) { // API is not available in this device. false }
Контекст может быть любым действительным контекстом Android. Если вы используете API в рамках Activity, примените метод getDataClient() класса Wearable. Это позволяет показывать некоторые взаимодействия в виде диалоговых окон, а не уведомлений, например когда пользователю предлагается обновить версию сервисов Google Play.
По умолчанию обратные вызовы для прослушивателей выполняются в основном потоке UI приложения. Чтобы обратные вызовы выполнялись в другом потоке, используйте объект WearableOptions, чтобы указать собственный Looper.
Подробнее о параметре WearableOptions.Builder…
При необходимости воссоздайте экземпляры клиента.
Клиенты Wearable API, такие как DataClient и MessageClient, недороги в создании. Поэтому вместо того, чтобы хранить клиентов, создавайте их по мере необходимости, используя стиль, подходящий для вашего приложения.
Состояние клиента, например набор зарегистрированных прослушивателей, является общим для всех клиентов и сохраняется при обновлении сервисов Google Play во время работы приложения.