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.
Облако
Данные автоматически направляются через Google Cloud, когда Bluetooth недоступен. Все данные, передаваемые через 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. Кроме того, он предоставляет удобные 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 обновляются во время работы приложения.
,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.
Облако
Данные автоматически направляются через Google Cloud, когда Bluetooth недоступен. Все данные, передаваемые через 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. Кроме того, он предоставляет удобные 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 обновляются во время работы приложения.