Descobrir dispositivos em uma rede usando as APIs Data Layer

Os dispositivos podem estabelecer uma conexão com a Internet diretamente usando uma conexão Wi-Fi ou celular ou indiretamente por um dispositivo Bluetooth pareado.

Nós acessíveis e próximos

Um dispositivo é considerado acessível quando está on-line e disponível para se comunicar com outro dispositivo, seja diretamente por Bluetooth ou indiretamente usando a nuvem como intermediário.

Um dispositivo é considerado próximo se puder ser conectado diretamente por Bluetooth, sem usar a nuvem.

Atividades que afetam o tempo de reconexão

Em determinadas circunstâncias, os dispositivos podem precisar de até quatro minutos para restabelecer uma conexão. Esses cenários incluem o seguinte:

  • Inatividade do dispositivo Wear OS:se um dispositivo Wear OS for removido do punho do usuário ou não for usado ativamente por um longo período, o tempo de reconexão poderá ser estendido.
  • Estado Soneca:o estado Soneca de economia de energia de um dispositivo portátil pode limitar processos em segundo plano, aumentando potencialmente o tempo de reconexão do dispositivo.
  • Interação do usuário:se o usuário começar a interagir com um dispositivo portátil e um dispositivo Wear OS aproximadamente ao mesmo tempo, isso geralmente acelera o processo de reconexão.

Descobrir todos os dispositivos usando um cliente de nó

Um objeto NodeClient identifica e transmite a lista de dispositivos com tecnologia Android conectados a uma rede, independente da capacidade de cada dispositivo. Todos os apps em um dispositivo recebem essas notificações, por exemplo, quando um dispositivo novo entra na rede ou fica off-line.

A classe NodeClient é particularmente útil para descobrir dispositivos que não têm seu app instalado.

Descobrir dispositivos específicos usando um cliente de recursos

Um objeto CapabilityClient fornece informações sobre quais dispositivos na rede do Wear OS oferecem suporte a recursos específicos do app. Um recurso é um recurso que um app define no momento da criação ou configura dinamicamente no momento da execução.

Por exemplo, um app Android para dispositivos móveis pode anunciar que tem suporte a controle remoto da reprodução de vídeo. A versão para Wear OS desse app pode usar o CapabilityClient para verificar se a versão para dispositivos móveis está instalada em um dispositivo por perto e oferece suporte a esse recurso. Se isso acontecer, o app para Wear OS poderá mostrar botões de reprodução e pausa para que os usuários possam controlar um vídeo que está sendo reproduzido no dispositivo móvel a partir do dispositivo Wear OS. A transmissão de recursos também funciona na direção oposta. Os apps para Wear OS podem listar os recursos com suporte.

Confira os novos recursos do seu app

Use o CapabilityClient para determinar o ID do nó de um dispositivo com que você precisa se comunicar. Por exemplo, se você precisar verificar a presença de um novo recurso no app em dispositivos portáteis, crie um recurso para esse novo recurso no dispositivo portátil. O app para Wear OS poderá consultar os dispositivos com suporte a esse recurso. Se o recurso estiver ausente em todos os dispositivos, isso significa que o usuário não tem uma versão do app com suporte a esse recurso, que você precisa processar na lógica dele. Se você presumir que o dispositivo portátil é sempre o nó correto para se comunicar, suas mensagens podem acabar não sendo entregues, porque o app para smartphone não é compatível com o recurso.

Determinar se um dispositivo Wear OS é o único na rede

Você pode usar o CapabilityClient para verificar se o app precisa operar em modo independente porque não há outros dispositivos Android por perto. Ao transmitir FILTER_ALL, nenhum outro dispositivo vai aparecer nos resultados.