Bluetooth de bajo consumo (BLE), disponible en Android 4.3 y versiones posteriores, crea conexiones cortas entre dispositivos para transferir ráfagas de datos. BLE permanece en modo de suspensión cuando no está conectado. Esto permite que BLE proporcione un ancho de banda más reducido y un menor consumo de energía en comparación con el Bluetooth clásico. BLE es ideal para apps como un monitor de frecuencia cardíaca o un teclado inalámbrico. Para usar BLE, los dispositivos deben tener un chipset que lo admita.
Implementación
Todos los perfiles actuales de apps BLE se basan en el perfil de atributo genérico (GATT) . Cuando un dispositivo con Android interactúa con un dispositivo BLE, el dispositivo que envía información es el servidor y el dispositivo que recibe información es el cliente. Android incluye APIs para desarrolladores de BLE, incluidas APIs para interacciones entre servidores y clientes de GATT. Para aprovechar al máximo las APIs de BLE, implementa los requisitos de HCI de Bluetooth para Android.
Modos de dispositivo
Cuando se usa BLE, un dispositivo con Android puede actuar como dispositivo periférico, dispositivo central o ambos. El modo periférico permite que los dispositivos envíen paquetes de anuncio. El modo central permite que los dispositivos busquen anuncios. Un dispositivo Android que actúa como dispositivo periférico y central puede comunicarse con otros dispositivos periféricos BLE mientras envía anuncios en modo periférico. Los dispositivos compatibles con Bluetooth 4.1 y versiones anteriores solo pueden usar BLE en modo central. Es posible que los chipsets de dispositivos más antiguos no admitan el modo periférico BLE.
Búsqueda de BLE
Un dispositivo con Android puede buscar y detectar dispositivos Bluetooth específicos de manera más eficiente cuando se usa BLE. Las APIs de BLE permiten a los desarrolladores de apps crear filtros para encontrar dispositivos con menos participación del controlador host.
Análisis de ubicación
Los servicios de ubicación de un dispositivo pueden usar Bluetooth para detectar balizas Bluetooth y proporcionar una ubicación más precisa. Así es como los usuarios habilitan la función:
- Ve a Configuración > Seguridad y ubicación > Ubicación.
- Comprueba que el botón de activar/desactivar la ubicación esté en la posición activado.
- Ve a Modo.
- Selecciona el modo Precisión alta o Ahorro de batería.
En Android 11 y versiones anteriores, las apps individuales requieren permisos de ubicación para usar la búsqueda de BLE, incluso si solo buscan dispositivos para conectarse. Si el usuario inhabilita la búsqueda de ubicación o no otorga permisos de ubicación a una app, esta no recibirá ningún resultado de búsqueda de BLE.
En Android 12 y versiones posteriores, los permisos
BLUETOOTH_SCAN
,
BLUETOOTH_ADVERTISE
y
BLUETOOTH_CONNECT
pueden permitir que las apps busquen dispositivos cercanos sin necesidad de solicitar el permiso de ubicación.
Para obtener más información, consulta
Permisos de Bluetooth.
Los usuarios pueden inhabilitar la búsqueda de Bluetooth en segundo plano a nivel del sistema en Configuración > Seguridad y ubicación > Ubicación > Búsqueda y haciendo clic en el botón de activación Búsqueda de Bluetooth para desactivarlo. Esto no afecta la búsqueda de BLE para la ubicación o los dispositivos locales.
Cómo filtrar los resultados de la búsqueda
Android 6.0 y versiones posteriores incluyen el análisis de BLE y la coincidencia de filtros en el controlador de Bluetooth. Un dispositivo puede filtrar los resultados de la búsqueda y generar informes de eventos encontrados y perdidos relacionados con dispositivos BLE para el procesador de aplicaciones (AP). El filtrado también funciona para los análisis por lotes, lo que ayuda a ahorrar energía, ya que el dispositivo descarga el análisis de BLE en el firmware. Los análisis por lotes reducen la frecuencia con la que se activa el AP debido al análisis de BLE en busca de dispositivos o balizas.
La función OnFound
/OnLost
se implementa en el controlador de Bluetooth y, luego, se prueba para confirmar que no se omitan dispositivos BLE en los análisis. Esto permite ahorrar energía y también puede proporcionar los siguientes beneficios:
- En el caso de un evento
OnFound
, el AP principal se activa cuando se descubre un dispositivo específico. - En el caso de un evento
OnLost
, el AP se activa cuando no se puede encontrar un dispositivo específico. - Las apps de Framework reciben menos notificaciones no deseadas cuando un dispositivo cercano está dentro del alcance.
- Las búsquedas continuas permiten que se notifique a las apps del framework cuando un dispositivo está fuera del alcance.
Un filtro de búsqueda puede basarse en el descubrimiento de los anuncios de un dispositivo (el evento OnFound
). La capa de Java puede especificar parámetros como el primer descubrimiento (o una cantidad especificada de anuncios desde el primer descubrimiento). Implementa el filtrado de BLE con el
comando HCI del filtro de contenido de paquetes publicitarios.