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