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 clientes que funciona melhor para seu app.
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), 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:
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
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-08-30 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-08-30 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 |"]]