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

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