O Nearby Connections é uma API de rede ponto a ponto que permite que os apps descubram, se conectem e troquem dados com dispositivos próximos em tempo real, independente da conectividade de rede.
Alguns exemplos de casos de uso:
- Lousa interativa colaborativa:anote ideias com participantes próximos em uma lousa interativa virtual compartilhada.
- Jogos multijogador locais:configure um jogo multijogador e convide outros usuários por perto para participar.
- Jogos em várias telas:use um smartphone ou tablet como controle de jogos para jogar em um dispositivo Android de tela grande por perto, como o Android TV.
- Transferências de arquivos off-line:compartilhe fotos, vídeos ou qualquer outro tipo de dado rapidamente e sem precisar de uma conexão de rede.
Introdução
Com o Nearby Connections, é possível fazer publicidade, descobrir e se conectar com dispositivos próximos de maneira ponto a ponto totalmente off-line. As conexões entre dispositivos têm alta largura de banda, baixa latência e criptografia completa para permitir transferências de dados rápidas e seguras.
Um dos principais objetivos dessa API é oferecer uma plataforma simples, confiável e de alto desempenho. Internamente, a API usa uma combinação de tecnologias Bluetooth, BLE e Wi-Fi, aproveitando os pontos fortes de cada uma e evitando as respectivas fraquezas. Isso abstrai as variações do Bluetooth e do Wi-Fi em várias plataformas e versões do SO, permitindo que os desenvolvedores se concentrem nos recursos importantes para os usuários.
Visão geral da API
O uso da API se divide em duas fases: pré-conexão e pós-conexão.
Na fase de pré-conexão, os anunciantes fazem publicidade, enquanto os descobridores descobrem anunciantes próximos e enviam solicitações de conexão. Uma solicitação de conexão de um descobridor para um anunciante inicia um fluxo de autenticação simétrica que resulta na aceitação (ou rejeição) independente da solicitação de conexão por ambos os lados.
Depois que um pedido de conexão é aceito pelos dois lados, a conexão é considerada estabelecida e os dispositivos entram na fase pós-conexão, em que ambos os lados podem trocar dados.
Publicidade e descoberta
Os anunciantes vão ficar visíveis para outros descobridores, e os descobridores vão receber uma notificação quando um novo anunciante for encontrado ou perdido.
Estabelecer conexões
Quando um descobridor quer se conectar a um anunciante próximo, ele pode solicitar uma conexão.
Ambos os lados serão notificados sobre o processo de início da conexão e poderão aceitar ou rejeitar a conexão.
Quando os dois lados responderem, cada um vai receber uma notificação com o resultado. Se os dois lados aceitarem a conexão, ela será considerada estabelecida, e a transferência de dados poderá começar.
Troca de dados
Depois que uma conexão é estabelecida, o uso da API é simétrico, então não há mais distinção entre anunciante e descobridor.
Agora, os dois lados podem trocar dados. Há três tipos de payloads compatíveis:
- Bytes:matrizes de bytes limitadas a 32k. São boas para enviar itens como metadados ou mensagens de controle.
- Arquivo:arquivos de qualquer tamanho. Eles são transferidos do app para a interface de rede com cópia mínima entre limites de processo.
- Stream:um fluxo de dados gerado na hora, como no caso de áudio/vídeo gravado, sem tamanho final conhecido antecipadamente.
Os destinatários vão receber notificações sobre novos dados e atualizações de progresso, cancelamentos ou falhas.
As conexões estabelecidas são full-duplex, o que significa que anunciantes e descobridores podem enviar e receber dados simultaneamente.
Coleta de dados
Ao usar o SDK Nearby do Google Play Services, as análises de uso são coletadas para melhorar a experiência.
- Métricas de desempenho:a latência, a confiabilidade e a taxa de transferência de descoberta e conexão são coletadas ao procurar e se conectar a dispositivos usando o SDK Nearby.
- Informações do dispositivo:o modelo, o país, a versão de build e o nome do pacote do aplicativo são coletados e associados às métricas de desempenho para identificar segmentos regionais e específicos do dispositivo.
Os usuários finais podem permitir ou negar essa coleta em Configurações > Google > Uso e diagnósticos.