Escolher um tipo de cliente

As APIs da camada de dados do Wear OS consistem em vários tipos diferentes de clientes, que são úteis para diferentes tipos de dados e durante diferentes condições de conectividade.

Esta página apresenta cada tipo de cliente e inclui uma tabela que compara os recursos dos diferentes clientes. Com essas informações, você pode selecionar o conjunto de tipos de cliente que funciona melhor para seu app.

Quando usar a API Data Layer

Use a API Data Layer quando a interação for estritamente entre o relógio local e o smartphone local. Para ver exemplos detalhados, consulte os casos de uso comuns da camada de dados.

Cliente de dados

Um objeto DataClient permite ler ou gravar em um DataItem ou Asset:

  • Cada DataItem é uma unidade de informação transmitida e sincronizada em todos os dispositivos por perto que pertencem a um usuário. Um DataItem é armazenado de forma persistente, e o dispositivo pode ler o conteúdo até que o item de dados seja excluído.

  • Um Asset é destinado a payloads de dados maiores, como imagens ou arquivos de mídia.

Cliente de mensagem

Um objeto MessageClient pode enviar mensagens e é útil para chamadas de procedimento remoto (RPC), como usar um dispositivo Wear OS para controlar a versão do seu app instalada em um dispositivo portátil.

As mensagens são ótimas para solicitações unidirecionais usando sendMessage() ou para um modelo de comunicação de solicitação e resposta usando sendRequest(). Ao contrário dos clientes de dados, os clientes de mensagens precisam que os nós estejam conectados à rede para enviar mensagens.

O método sendMessage() é uma tentativa de entrega ao nó remoto e não contém nenhum mecanismo de repetição integrado. Se o dispositivo de destino for desconectado antes do início da transferência de rede, o método vai retornar TARGET_NODE_NOT_CONNECTED.

Cliente de canal

Um objeto ChannelClient fornece comunicação orientada a stream entre dispositivos. Um canal é um pipe de comunicação bidirecional entre dois nós, o que é útil para casos de uso como os seguintes:

  • Transferência de arquivos de dados entre dois ou mais dispositivos conectados quando não há uma conexão de Internet disponível. Se comparado ao DataClient, o ChannelClient economiza espaço em disco, já que o primeiro cria uma cópia dos recursos no dispositivo local antes de sincronizá-los com os dispositivos conectados.
  • Envio seguro de arquivos grandes demais para serem enviados usando um MessageClient.
  • Transferência de dados transmitidos de um dispositivo para o outro, como dados de voz do microfone.

Depois de abrir um canal, é possível enviar e receber dados em um fluxo contínuo de bytes, em vez das unidades DataItem discretas que os clientes de dados exigem.

Você é responsável por gerenciar o fluxo de dados e manter a consistência deles. Os clientes de canal não oferecem o mesmo nível de sincronização automática de dados que os clientes de dados.

Comparação entre clientes

A tabela a seguir compara os recursos dos diferentes clientes:

Tipo de cliente Persistência de dados Aceita dados maiores que 100 KB? Rede a ser usada Funciona off-line?
Cliente de dados Os dados são mantidos indefinidamente Sim (use objetos Asset) Bluetooth preferencial. Os dados são armazenados em backup na nuvem. Se o Bluetooth estiver disponível, esse backup será feito de forma assíncrona Sim, para leitura e gravação
Cliente de mensagem Sem persistência e sem novas tentativas Não Bluetooth é preferencial, mas pode usar Wi-Fi se for o único tipo de conexão disponível Não
Cliente de canal Sem persistência (orientada à conexão) Sim Bluetooth é preferencial, mas pode usar Wi-Fi se for o único tipo de conexão disponível Não

Para mais informações sobre como trabalhar com as APIs da camada de dados, consulte o guia Sincronizar dados. Para considerações de energia ao usar as APIs Camada de dados, consulte o guia Economizar energia.