API уровня данных Wear OS состоят из нескольких типов клиентов, которые полезны для разных типов данных и при разных условиях подключения.
На этой странице представлены все типы клиентов и таблица со сравнением их возможностей. Используя эту информацию, вы можете выбрать набор типов клиентов, который лучше всего подходит для вашего приложения.
Когда использовать Data Layer API
Используйте Data Layer API, когда взаимодействие происходит строго между локальными часами и локальным телефоном. Подробные примеры приведены в статье Распространенные варианты использования уровня данных.
Клиент данных
Объект DataClient позволяет считывать данные из DataItem или Asset и записывать их туда.
Каждый
DataItem– это единица информации, которая передается и синхронизируется на всех устройствах пользователя, находящихся поблизости.DataItemхранится постоянно, и устройство может считывать его содержимое, пока объект не будет удален.Assetпредназначен для больших объемов данных, таких как изображения или медиафайлы.
Клиент для обмена сообщениями
Объект MessageClient может отправлять сообщения и подходит для вызова удаленных процедур (RPC), например для управления версией приложения, установленной на мобильном устройстве, с помощью устройства Wear OS.
Сообщения отлично подходят для односторонних запросов с помощью sendMessage() или для модели связи "запрос-ответ" с помощью sendRequest(). В отличие от клиентов данных, клиентам сообщений для отправки сообщений требуется, чтобы узлы были подключены к сети.
Метод sendMessage() пытается доставить сообщение на удаленный узел, но не содержит встроенного механизма повторных попыток. Если целевое устройство отключится до начала передачи по сети, метод вернет TARGET_NODE_NOT_CONNECTED.
Клиент канала
Объект ChannelClient обеспечивает потоковую передачу данных между устройствами. Канал – это двунаправленный канал связи между двумя узлами, который полезен в следующих случаях:
- Передавайте файлы между двумя или более подключенными устройствами, когда интернет недоступен.
ChannelClientэкономит место на диске по сравнению сDataClient, который создает копию объектов на локальном устройстве перед синхронизацией с подключенными устройствами. - Надежно отправляйте файлы, которые слишком велики для отправки через
MessageClient. - Передавать потоковые данные, например голосовые данные с микрофона.
После открытия канала вы можете отправлять и получать данные в виде непрерывного потока байтов, а не дискретных единиц DataItem, которые требуются клиентам данных.
Вы несете ответственность за управление потоком данных и обеспечение их согласованности. Клиенты каналов не предлагают такой же уровень автоматической синхронизации данных, как клиенты данных.
Сравнение клиентов
В таблице ниже сравниваются возможности разных клиентов.
| Тип клиента | Сохранение данных | Поддерживает ли данные размером более 100 КБ? | Сеть, которую нужно использовать | Возможна ли работа в автономном режиме? |
|---|---|---|---|---|
| Клиент данных | Данные хранятся неограниченное время. | Да (используйте объекты Asset) |
Предпочтительно Bluetooth. Данные копируются в облако. Если доступно подключение Bluetooth, резервное копирование выполняется асинхронно. | Да, для чтения и записи |
| Написать клиенту | Не сохраняет данные и не выполняет повторных вызовов | Нет | Предпочтительно Bluetooth, но можно использовать Wi-Fi, если это единственный доступный тип подключения. | Нет |
| Клиент канала | Без сохранения (ориентировано на подключение) | Да | Предпочтительно Bluetooth, но можно использовать Wi-Fi, если это единственный доступный тип подключения. | Нет |
Дополнительную информацию о работе с API слоя данных см. в руководстве Синхронизация данных. Рекомендации по энергосбережению при использовании API слоя данных приведены в руководстве по экономии энергии.