Escolher um tipo de cliente

As APIs da camada de dados do Wear OS são compostas por vários tipos diferentes de clientes, que são úteis para diferentes tipos de dados e durante diferentes conditions.

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

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 próximos de um usuário. Um DataItem é armazenado de maneira permanente, e seu dispositivo poderá 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 é bom para procedimentos remotos (RPC), como o uso de um dispositivo Wear OS para controlar a versão do app instalado em um dispositivo portátil.

As mensagens são ótimas para solicitações unidirecionais usando sendMessage() ou para uma modelo de comunicação de solicitação e resposta usando sendRequest(). Ao contrário dos dados os clientes de mensagem 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 ele não contém nenhum mecanismo de nova tentativa integrado. Se o dispositivo de destino desconecta antes do início da transferência de rede, o método retorna TARGET_NODE_NOT_CONNECTED:

Cliente de canal

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

  • Transferir arquivos de dados entre dois ou mais dispositivos conectados quando houver conexão com a Internet não está disponível. ChannelClient economiza espaço em disco em relação a DataClient, o que cria uma cópia dos recursos no dispositivo local antes da sincronização com e dispositivos conectados.
  • Envio confiável 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 byte contínuo stream, em vez das unidades DataItem distintas que os clientes de dados exigem.

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

Comparação entre clientes

A tabela a seguir compara os recursos dos diferentes clientes:

Tipo de cliente Persistência de dados Oferece suporte a dados com mais de 100 KB? Rede a ser usada Funciona off-line?
Cliente de dados Os dados são mantidos indefinidamente Sim (usar Asset objetos) Preferência pelo Bluetooth. é feito backup dos dados na nuvem; se o Bluetooth estiver disponível, esse backup é feito de modo assíncrono Sim, para leitura e gravação
Cliente de mensagem Sem persistência e sem nova tentativa 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