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 devices.

A API Wearable Data Layer, que faz parte do Google Play Services, oferece um canal de comunicação entre dispositivos wearable (como smartwatches) 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 comunicação entre dispositivos portáteis e wearables, elas são as únicas APIs 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

Use a API Data Layer quando a interação for estritamente entre o relógio e o smartphone. Exemplo:

  • Controle remoto: o relógio funciona como um controle remoto para o smartphone (por exemplo, controlando um player de música em execução no smartphone, deslizando uma apresentação, atuando como um obturador de câmera).
  • Inicialização de apps portáteis: o recurso do botão "Abrir no smartphone".
  • Ponte de autenticação: envio de um token de sessão do smartphone para o relógio durante a configuração inicial.

Muitos cenários comuns precisam usar sua infraestrutura em nuvem atual, por exemplo:

  • Salvar dados: treinos, anotações.
  • Buscar conteúdo: carregar uma lista de treinos anteriores, baixar músicas, buscar informações meteorológicas.
  • Sincronizar estado: se o usuário mudar a foto do perfil na Web, o relógio será atualizado usando a nuvem, não consultando o smartphone.

Para esses cenários, use seus próprios endpoints e infraestrutura em vez da API Data Layer.

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.

Nuvem

Os dados são automaticamente roteados 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 fornecer uma comunicação mais segura entre o app instalado em um dispositivo Wear OS e o mesmo app instalado em um dispositivo portátil próximo:

  • 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, independentemente do tipo de conexão.

Configuração

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 nas APIs da plataforma. Ele 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:

  • Instalar o app no outro dispositivo.
  • Iniciar o app no outro dispositivo.
  • Iniciar uma atividade específica no outro dispositivo.
  • Iniciar o app complementar.

Acessar a camada de dados

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

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

Usar um cliente mínimo

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

val dataClient = Wearable.getDataClient(this)

val available = try {
    GoogleApiAvailability.getInstance()
        .checkApiAvailability(client)
        .await()
    true
} catch (e: AvailabilityException) {
    // API is not available in this device.
    false
}

O contexto pode ser qualquer contexto Android válido. Caso você esteja usando uma 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 de interface principal do app. Se quiser callbacks em uma linha de execução diferente, use um objeto WearableOptions para especificar um Looper personalizado.

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

Recriar instâncias de cliente conforme necessário

Os clientes da API Wearable, como DataClient e MessageClient, têm baixo custo de criação. Portanto, em vez de manter os clientes, recrie-os conforme necessário, usando o estilo adequado ao seu app.

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