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. UmDataItem
é 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 aoDataClient
, 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 |