Visão geral da API Data Layer

O nó baseado na nuvem é controlado por um servidor do Google
Figura 1. Exemplo de rede de nós com dispositivos portáteis e Wear OS.

A API Wearable Data Layer, que faz parte do Google Play Services, oferece um canal de comunicação entre dispositivos wearables (como relógios inteligentes) e dispositivos portáteis conectados (geralmente smartphones). É uma maneira de sincronizar e transferir dados entre os dispositivos.

Observação:essa API só está disponível em relógios Wear OS e dispositivos Android pareados. No caso de relógios Wear OS pareados com smartphones iOS, os apps podem consultar outras APIs baseadas na nuvem quando há uma conexão de Internet disponível. Para mais informações sobre essas outras APIs, acesse Acesso à rede e sincronização no Wear OS.

Atenção:como as APIs da camada de dados são projetadas para a comunicação entre dispositivos portáteis e wearables, elas são as únicas que podem ser usadas para configurar a comunicação entre esses dispositivos. Por exemplo, não tente abrir soquetes de baixo nível para criar um canal de comunicação.

Casos de uso comuns

A API Data Layer é particularmente útil para casos de uso de mídia e fitness.

Apps fitness

Como enviar dados de exercícios do app para Wear OS para o app para dispositivos móveis Os apps de condicionamento físico geralmente precisam gravar os dados de exercícios capturados por um relógio em um app para dispositivos móveis ou na Conexão Saúde. Se você estiver usando a API Data Layer para transferir dados, use um cliente de mensagens para enviar dados de exercícios do app para Wear OS ao app para dispositivos móveis para gravar no Conexão Saúde.

Transmitir dados ao vivo para o dispositivo móvel durante um treino em casa

Um cenário comum de treino em casa é transmitir dados de frequência cardíaca de um dispositivo Wear OS para um dispositivo móvel e mostrar ao usuário informações atualizadas de frequência cardíaca na tela do dispositivo móvel. Para transmitir esses dados, use um cliente de canal.

Apps de música

Para controlar um player de mídia usando a ação de pausar/continuar/iniciar/encerrar do relógio para o smartphone, use um cliente de mensagens.

Opções de comunicação

Os dados são transferidos de uma das seguintes maneiras:

  1. Diretamente, quando há uma conexão Bluetooth estabelecida entre o dispositivo Wear OS e outro dispositivo.
  2. Em uma rede disponível, como LTE ou Wi-Fi, usando um nó de rede nos servidores do Google como intermediário.

Todos os clientes da camada de dados podem trocar dados usando o Bluetooth ou a nuvem, dependendo das conexões disponíveis nos dispositivos. Vamos supor que os dados transmitidos usando a camada de dados possam, em algum momento, usar servidores do Google.

Bluetooth

Quando os dispositivos estão conectados por Bluetooth, a camada de dados usa essa conexão. Há um único canal criptografado entre os dispositivos, que usam a criptografia Bluetooth padrão gerenciada pelo Google Play Services.

Google Cloud

Os dados são roteados automaticamente pelo Google Cloud quando o Bluetooth não está disponível. Todos os dados transferidos pelo Google Cloud são criptografados de ponta a ponta.

Segurança das comunicações

O Google Play Services aplica as restrições abaixo para oferecer uma comunicação mais segura entre o app instalado em um dispositivo Wear OS e o mesmo app instalado em um dispositivo portátil por perto:

  • O nome do pacote precisa ser o mesmo nos dois dispositivos.
  • A assinatura do pacote precisa ser a mesma nos dois dispositivos.

Nenhum outro app tem acesso aos dados, independente do tipo de conexão.

Configurar

A API Wearable Data Layer exige estas dependências:

Inclua a dependência abaixo no arquivo build.gradle do módulo do Wear:

dependencies {
    ...
    implementation("com.google.android.gms:play-services-wearable:19.0.0")
}

Facilitar o processo de pareamento inicial

O Horologist fornece várias bibliotecas auxiliares sobre as APIs da plataforma. Ela inclui uma biblioteca de camada de dados que ajuda a estabelecer uma conexão entre um dispositivo móvel e um dispositivo Wear OS. Além disso, ele fornece APIs convenientes para fazer o seguinte:

  • Instale o app no outro dispositivo.
  • Abra o app no outro dispositivo.
  • Inicie uma atividade específica no outro dispositivo.
  • Inicie o app complementar.

Acessar a camada de dados

Para chamar a API Data Layer, use a classe Wearable para receber instâncias das várias classes de cliente, como DataClient e MessageClient.

Para mais informações, consulte o exemplo de DataLayer.

Usar um cliente mínimo

Para criar um cliente, consulte o exemplo de código a seguir:

Kotlin

val dataClient: DataClient = Wearable.getDataClient(context)

Java

DataClient dataClient = Wearable.getDataClient(context);

O contexto pode ser qualquer contexto Android válido. Se você estiver usando a API no escopo de uma Activity, use o método getDataClient() da classe Wearable. Isso permite que algumas interações apareçam como caixas de diálogo em vez de notificações, como quando o usuário precisa atualizar a versão do Google Play Services.

Por padrão, callbacks para listeners são feitos na linha de execução principal da IU do app. Para fazer callbacks em uma linha de execução diferente, use um objeto WearableOptions para especificar um Looper personalizado:

Kotlin

runBlocking {
    Wearable.getDataClient(context, options)
}

Java

WearableOptions options = new WearableOptions.Builder().setLooper(myLooper).build();
DataClient dataClient = Wearable.getDataClient(context, options);

Para mais informações, consulte a referência WearableOptions.Builder.

Recriar instâncias de cliente conforme necessário

Os clientes da API Wearable, como DataClient e MessageClient, têm baixo custo de criação. Em vez de manter os clientes, recrie-os conforme precisar, usando o estilo mais adequado para seu app.

O estado do cliente, como o conjunto de listeners registrados, é compartilhado entre todos os clientes e é preservado se o Google Play Services for atualizado enquanto um app estiver em execução.