Выберите тип клиента

API уровня данных Wear OS состоят из нескольких различных типов клиентов, которые полезны для разных типов данных и в разных условиях подключения.

На этой странице представлен каждый тип клиента, а также таблица, в которой сравниваются возможности разных клиентов. Используя эту информацию, вы можете выбрать набор типов клиентов, который лучше всего подходит для вашего приложения.

Клиент данных

Объект 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, если это единственный доступный тип соединения Нет