API Wearable Data Layer, являющийся частью сервисов Google Play, обеспечивает канал связи между носимыми устройствами (например, умными часами) и подключенными к ним портативными устройствами (обычно смартфонами). Это способ синхронизации и передачи данных между устройствами.
Примечание: Этот API доступен только на часах Wear OS и сопряженных устройствах Android. На часах Wear OS, сопряженных с телефонами iOS, приложения могут запрашивать другие облачные API при наличии подключения к интернету. Для получения дополнительной информации об этих других API посетите раздел «Доступ к сети и синхронизация в Wear OS» .
Внимание: Поскольку API уровня данных предназначены для связи между портативными и носимыми устройствами, это единственные API, которые вы можете использовать для настройки связи между этими устройствами. Например, не пытайтесь открывать низкоуровневые сокеты для создания канала связи.
Типичные сценарии использования
Используйте API уровня данных, когда взаимодействие происходит исключительно между часами и телефоном. Например:
- Дистанционное управление : часы выступают в роли пульта дистанционного управления для телефона (например, для управления музыкальным проигрывателем, работающим на телефоне, для прокрутки презентации, для управления затвором камеры).
- Запуск приложений на мобильных устройствах : функция кнопки «Открыть на телефоне».
- Аутентификация через мост : отправка токена сессии с телефона на часы во время первоначальной настройки.
Во многих распространенных сценариях вместо этого следует использовать существующую облачную инфраструктуру, например:
- Сохранение данных : тренировки, заметки.
- Получение контента : загрузка списка прошлых тренировок, скачивание музыки, получение информации о погоде.
- Состояние синхронизации : Если пользователь меняет фотографию своего профиля в веб-версии, часы обновляются через облако, а не путем запроса к телефону.
В таких сценариях используйте собственные существующие конечные точки и инфраструктуру, а не API уровня данных.
Варианты коммуникации
Передача данных осуществляется одним из следующих способов:
- Непосредственно , когда между устройством 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 = 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.
По умолчанию обратные вызовы обработчикам событий выполняются в основном потоке пользовательского интерфейса приложения. Чтобы обратные вызовы выполнялись в другом потоке, используйте объект WearableOptions для указания пользовательского Looper .
Для получения более подробной информации см. справочник WearableOptions.Builder .
При необходимости пересоздайте экземпляры клиента.
Клиенты API для носимых устройств, такие как DataClient и MessageClient , недороги в создании. Поэтому вместо того, чтобы хранить готовые клиенты, создавайте их заново по мере необходимости, используя стиль, подходящий для вашего приложения.
Состояние клиента, например, набор зарегистрированных слушателей, является общим для всех клиентов и сохраняется при обновлении сервисов Google Play во время работы приложения.