Bluetooth Low Energy

O Bluetooth de baixa energia (BLE), disponível no Android 4.3 e versões mais recentes, cria conexões curtas entre dispositivos para transferir pacotes de dados. O BLE permanece no modo de espera quando não está conectado. Isso permite que o BLE ofereça menor largura de banda e consumo de energia reduzido em comparação com o Bluetooth clássico. O BLE é ideal para apps como um monitor de frequência cardíaca ou um teclado sem fio. Para usar o BLE, os dispositivos precisam ter um chipset compatível.

Implementação

Todos os perfis atuais de apps BLE são baseados no perfil de atributo genérico (GATT) . Quando um dispositivo Android interage com um dispositivo BLE, o dispositivo que envia informações é o servidor, e o dispositivo que recebe informações é o cliente. O Android inclui APIs de desenvolvedor para BLE, incluindo APIs para interações entre servidores e clientes GATT. Para aproveitar ao máximo as APIs BLE, implemente os Requisitos de HCI do Bluetooth do Android.

Modos do dispositivo

Ao usar o BLE, um dispositivo Android pode funcionar como um dispositivo periférico, um dispositivo central ou ambos. O modo periférico permite que os dispositivos enviem pacotes de publicidade. No modo central, os dispositivos podem procurar anúncios. Um dispositivo Android que funciona como periférico e central pode se comunicar com outros periféricos BLE enquanto envia anúncios no modo periférico. Dispositivos compatíveis com Bluetooth 4.1 e versões anteriores podem usar o BLE apenas no modo central. Chipsets de dispositivos mais antigos talvez não sejam compatíveis com o modo periférico BLE.

Busca por BLE

Um dispositivo Android pode segmentar e procurar dispositivos Bluetooth específicos de maneira mais eficiente ao usar o BLE. As APIs BLE permitem que os desenvolvedores de apps criem filtros para encontrar dispositivos com menos envolvimento do controlador host.

Verificação de local

Os serviços de localização de um dispositivo podem usar o Bluetooth para detectar beacons Bluetooth e fornecer uma localização mais precisa. É assim que os usuários ativam o recurso:

  1. Acesse Configurações > Segurança e localização > Localização.
  2. Verifique se o botão de ativação/desativação da Localização está na posição Ativada.
  3. Acesse Modo.
  4. Selecione o modo Alta precisão ou Economia de bateria.

No Android 11 e versões anteriores, os apps individuais precisam de permissões de localização para usar a busca por BLE, mesmo que estejam buscando apenas para encontrar dispositivos a serem conectados. Se o usuário desativar a verificação de localização ou não conceder permissões de localização a um app, ele não vai receber resultados de verificação de BLE.

No Android 12 e versões mais recentes, as permissões BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE e BLUETOOTH_CONNECT permitem que os apps procurem dispositivos próximos sem precisar pedir a permissão de localização. Para mais informações, consulte Permissões do Bluetooth.

Os usuários podem desativar a verificação em segundo plano do Bluetooth no nível do sistema acessando Configurações > Segurança e local > Local > Verificação e clicando no botão Verificação de Bluetooth para a posição desativada. Isso não afeta a busca por BLE para localização ou dispositivos locais.

Filtrar resultados da verificação

O Android 6.0 e versões mais recentes incluem verificação e correspondência de filtros BLE no controlador Bluetooth. Um dispositivo pode filtrar resultados de verificação e informar eventos encontrados e perdidos relacionados a dispositivos BLE ao processador de aplicativos (AP). A filtragem também funciona para verificações em lote, o que ajuda a economizar energia, já que o dispositivo descarrega a verificação BLE para o firmware. As verificações em lote reduzem a frequência com que o PA é ativado devido à verificação BLE de dispositivos ou beacons.

O recurso OnFound/OnLost é implementado no controlador Bluetooth e testado para confirmar que os dispositivos BLE não são perdidos nas verificações. Isso gera economia de energia e também pode oferecer os seguintes benefícios:

  • Para um evento OnFound, o PA principal é ativado quando um dispositivo específico é descoberto.
  • Para um evento OnLost, o PA é ativado quando um dispositivo específico não é encontrado.
  • Os apps de framework recebem menos notificações indesejadas quando um dispositivo próximo está no alcance.
  • As verificações contínuas permitem que os apps de framework sejam notificados quando um dispositivo está fora do alcance.

Um filtro de verificação pode ser baseado na descoberta dos anúncios de um dispositivo (o evento OnFound). A camada Java pode especificar parâmetros como a primeira descoberta (ou um número especificado de anúncios desde a primeira descoberta). Implemente a filtragem BLE usando o comando HCI do filtro de conteúdo do pacote de publicidade.