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 rajadas de dados. O BLE permanece no modo de espera quando não está conectado. Isso permite que o BLE ofereça largura de banda menor e consumo de energia reduzido em comparação com o Bluetooth clássico. É 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 de apps BLE atuais 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 que recebe informações é o cliente. O Android inclui APIs para desenvolvedores de 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 atuar como um dispositivo periférico, um dispositivo central ou ambos. O modo periférico permite que os dispositivos enviem pacotes de publicidade. O modo central permite que os dispositivos façam a varredura de anúncios. Um dispositivo Android que atua como periférico e central pode se comunicar com outros dispositivos periféricos BLE ao enviar anúncios no modo periférico. Dispositivos com suporte para Bluetooth 4.1 e versões anteriores só podem usar o BLE no modo central. Os chipsets de dispositivos mais antigos podem não oferecer suporte ao modo de periférico BLE.

Busca por BLE

Um dispositivo Android pode buscar e detectar 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 hôte.

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. Veja como os usuários ativam o recurso:

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

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

No Android 12, as permissões BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE e BLUETOOTH_CONNECT permitem que os apps procurem dispositivos por perto sem precisar solicitar a permissão de localização. Para mais informações, consulte Novas permissões do Bluetooth no Android 12.

Os usuários podem desativar a verificação em segundo plano do Bluetooth no nível do sistema acessando Configurações > Segurança e localização > Localização > Verificação e desativando a alternância para Verificação de Bluetooth. Isso não afeta a verificação de BLE para localização ou dispositivos locais.

Filtrar resultados da verificação

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

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

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

Um filtro de verificação pode ser baseado na descoberta de 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 de BLE usando o comando HCI do filtro de conteúdo do pacote de publicidade.