Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
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.
Cada DataItem é uma unidade de informação transmitida e sincronizada
em todos os dispositivos próximos que um usuário possui. Um DataItem é armazenado de forma permanente,
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 mensagens
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() é 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
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 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 não há uma conexão de Internet
disponível. O ChannelClient economiza espaço em disco em comparação com o DataClient, que
cria uma cópia dos recursos no dispositivo local antes de sincronizar com
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 fluxo contínuo de bytes, em vez das unidades discretas DataItem que os clientes de dados exigem.
Você é responsável por gerenciar o fluxo de dados e manter a consistência deles.
Os clientes de canais 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 as capacidades dos diferentes clientes:
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 novas tentativas
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 (orientada a conexão)
Sim
Bluetooth preferido, mas pode usar Wi-Fi se for o único tipo de conexão disponível
Não
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-09-05 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-09-05 UTC."],[],[],null,["The Wear OS data layer APIs consist of several different types of clients, which\nare useful for different types of data and during different connectivity\nconditions.\n\nThis page introduces each client type, and it includes a table that compares the\ncapabilities of the different clients. Using this information, you can select\nthe set of client types that works best for your app.\n\nData client\n\nA [`DataClient`](https://developers.google.com/android/reference/com/google/android/gms/wearable/DataClient) object lets you read or write to a [`DataItem`](https://developers.google.com/android/reference/com/google/android/gms/wearable/DataItem) or\n[`Asset`](https://developers.google.com/android/reference/com/google/android/gms/wearable/Asset):\n\n- Each `DataItem` is a unit of information that's broadcast and synchronized\n across all nearby devices that a user owns. A `DataItem` is stored persistently,\n and your device can read its contents until the data item is deleted.\n\n- An `Asset` is meant for larger data payloads, such as images or media files.\n\nMessage client\n\nA [`MessageClient`](https://developers.google.com/android/reference/com/google/android/gms/wearable/MessageClient) object can send messages and is good for remote procedure\ncalls (RPC), such as using a Wear OS device to control the version of your app\nthat's installed on a handheld device.\n\nMessages are great for one-way requests using `sendMessage()`, or for a\nrequest-and-response communication model using `sendRequest()`. Unlike with data\nclients, message clients need the nodes to be connected to the network in order\nto send messages.\n\nThe `sendMessage()` method is a best effort to deliver to the remote node, and\nit doesn't contain any built-in retry mechanism. If the target device\ndisconnects before the network transfer starts, the method returns\n`TARGET_NODE_NOT_CONNECTED`.\n| **Note:** To help preserve power, consider sending messages only to nearby devices.\n\nChannel client\n\nA [`ChannelClient`](https://developers.google.com/android/reference/com/google/android/gms/wearable/ChannelClient) object provides stream-oriented communication between\ndevices. A *channel* is a bidirectional communication pipe between two nodes,\nwhich is useful for use cases such as the following:\n\n- Transfer data files between two or more connected devices when the internet isn't available. `ChannelClient` saves disk space over `DataClient`, which creates a copy of the assets on the local device before synchronizing with connected devices.\n- Reliably send a file that's too large to send using a `MessageClient`.\n- Transfer streamed data, such as voice data from the microphone.\n\nAfter you open a channel, you can send and receive data in a continuous byte\nstream, rather than the discrete `DataItem` units that data clients require.\n\nYou're responsible for managing the data flow and keeping data consistent.\nChannel clients don't offer the same level of automatic data synchronization\nthat data clients do.\n\nClient comparison\n\nThe following table compares the capabilities of the different clients:\n\n| Client type | Data persistence | Supports data larger than 100 KB? | Network to use | Works offline? |\n|--------------------|--------------------------------------|--------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------|------------------------------|\n| **Data client** | Data is persisted indefinitely | Yes (use [`Asset`](https://developers.google.com/android/reference/com/google/android/gms/wearable/Asset) objects) | Bluetooth preferred. Data is backed up to the cloud; if Bluetooth is available, this backup is done asynchronously | Yes, for both read and write |\n| **Message client** | No persistence and no retry | No | Bluetooth preferred, but can use Wi-Fi if it's the only type of connection available | No |\n| **Channel client** | No persistence (connection-oriented) | Yes | Bluetooth preferred, but can use Wi-Fi if it's the only type of connection available | No |"]]