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 em 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.
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 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 próximos que um usuário possui. UmDataItemé armazenado de forma persistente, e seu dispositivo pode ler o conteúdo dele 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 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() é a melhor tentativa de entrega ao nó remoto e não contém nenhum mecanismo de repetição 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 pipe de comunicação bidirecional entre dois nós, útil para casos de uso como os seguintes:
- Transferência de arquivos de dados entre dois ou mais dispositivos conectados quando a Internet não está disponível. O
ChannelClienteconomiza espaço em disco em comparação com oDataClient, que cria uma cópia dos recursos no dispositivo local antes de sincronizá-los com os 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, você pode enviar e receber dados em um fluxo de bytes contínuo, em vez das unidades DataItem discretas exigidas 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 | Aceita dados maiores que 100 KB? | Rede a ser usada | Funciona off-line? |
|---|---|---|---|---|
| Cliente de dados | Os dados são mantidos indefinidamente | Sim (use
Asset
objetos) |
Bluetooth preferido. 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 repetição | Não | Bluetooth preferido, mas pode usar Wi-Fi se for o único tipo de conexão disponível | Não |
| Cliente de canal | Sem persistência (orientado à conexão) | Sim | Bluetooth preferido, 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 sobre energia ao usar as APIs da camada de dados, consulte o Economizar energia guia.