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 móveis 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.
Cuidado:como as APIs da camada de dados são projetadas para a comunicação entre dispositivos portáteis e wearables, essas 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, controlar um player de música em execução no smartphone, passar uma apresentação, atuar como um obturador de câmera).
- Inicialização de apps em dispositivos móveis: o recurso do botão "Abrir no smartphone".
- Autenticação por ponte: envio de um token de sessão do smartphone para o relógio durante a configuração inicial.
Em vez disso, muitos cenários comuns devem usar sua infraestrutura de nuvem atual, por exemplo:
- Como salvar dados: treinos, observações.
- Buscando conteúdo: carregando uma lista de treinos anteriores, baixando músicas e buscando informações sobre o clima.
- Estado de sincronização: 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:
- Diretamente, quando há uma conexão Bluetooth estabelecida entre o dispositivo Wear OS e outro dispositivo.
- 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 seguintes restrições 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.
Configuração
A API Wearable Data Layer exige estas dependências:
- A versão mais recente do Google Play Services.
- Um dispositivo ou emulador Wear OS.
Inclua a seguinte dependência no arquivo build.gradle do módulo do Wear:
dependencies {
...
implementation("com.google.android.gms:play-services-wearable:19.0.0")
}
Facilitar o processo inicial de pareamento
O Horologist oferece várias bibliotecas auxiliares sobre as APIs da plataforma. Ela inclui uma biblioteca da camada de dados que ajuda a estabelecer uma conexão entre um dispositivo móvel e um dispositivo Wear OS. Além disso, ela oferece 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:
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. Se você estiver usando a API no escopo de um 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 ter
callbacks em uma linha de execução diferente, use um objeto WearableOptions para
especificar um Looper personalizado.
Para mais informações, consulte a referência WearableOptions.Builder.
Recrie 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
necessário, usando o estilo 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.