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 clientes que funciona melhor para seu app.

Cliente de dados

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

  • Cada DataItem é uma unidade de informações 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 mensagens

Um objeto MessageClient pode enviar mensagens e é bom para chamadas de procedimento remoto (RPC, na sigla em inglês), como usar um dispositivo Wear OS para controlar a versão do 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() é o melhor esforço para entregar ao nó remoto e não contém nenhum mecanismo de nova tentativa integrado. Se o dispositivo de destino se desconectar antes do início da transferência de rede, o método retornará TARGET_NODE_NOT_CONNECTED.

Cliente de canal

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

  • Transferência de arquivos de dados entre dois ou mais dispositivos conectados quando a Internet não está disponível. O ChannelClient economiza espaço em disco em relação ao DataClient, que cria uma cópia dos recursos no dispositivo local antes da sincronização 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, você pode enviar e receber dados em um fluxo de bytes contínuo, em vez das unidades DataItem discretas necessárias pelos clientes de dados.

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 Suporta 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 é a opção preferida. Os dados são armazenados na nuvem. Se o Bluetooth estiver disponível, o backup será feito de forma assíncrona. Sim, para leitura e gravação
Cliente de mensagens Sem persistência e sem nova tentativa Não Bluetooth é o preferido, mas o Wi-Fi pode ser usado se for o único tipo de conexão disponível Não
Cliente de canal Sem persistência (orientado por conexão) Sim Bluetooth é o preferido, mas o Wi-Fi pode ser usado se for o único tipo de conexão disponível Não