Bluetooth de bajo consumo (BLE), disponible en Android 4.3 y versiones posteriores, crea conexiones breves entre dispositivos para transferir ráfagas de datos. BLE permanece en modo de suspensión cuando no está conectado. Esto permite que el BLE proporcione un ancho de banda más bajo y un consumo de energía reducido en comparación con el Bluetooth clásico. 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 admita esta tecnología.
Implementación
Todos los perfiles de apps de BLE actuales se basan en el perfil de atributos genéricos (GATT). Cuando un dispositivo Android interactúa con un dispositivo BLE, el dispositivo que envía información es el servidor y el que recibe información es el cliente. Android incluye APIs para desarrolladores de BLE, incluidas las 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 Android puede actuar como dispositivo periférico, central o ambos. El modo periférico permite que los dispositivos envíen paquetes de anuncios. El modo central permite que los dispositivos escaneen anuncios. Un dispositivo Android que actúa como periférico y dispositivo 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 conjuntos de chips de dispositivos más antiguos no admitan el modo periférico BLE.
Búsqueda de BLE
Un dispositivo Android puede buscar dispositivos Bluetooth específicos de forma más eficiente cuando usa BLE. Las APIs de BLE permiten que los desarrolladores de apps creen filtros para encontrar dispositivos con menos participación del controlador de host.
Análisis de ubicación
Los servicios de ubicación de un dispositivo pueden usar Bluetooth para detectar píxeles contadores Bluetooth y proporcionar una ubicación más precisa. De esta manera, los usuarios habilitan la función:
- Ve a Configuración > Seguridad y ubicación > Ubicación.
- Comprueba que el botón de activación de la ubicación On/Off esté en la posición On.
- Ve a Modo.
- Selecciona el modo Precisión alta o Ahorro de batería.
En Android 11 o 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 el escaneo de ubicación o no otorga permisos de ubicación a la app, esta no recibirá ningún resultado de escaneo de BLE.
A partir de Android 12, 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 nuevos de Bluetooth en Android 12.
Los usuarios pueden inhabilitar la búsqueda en segundo plano de Bluetooth a nivel del sistema. Para ello, deben ir a Configuración > Seguridad y ubicación > Ubicación > Búsqueda y desactivar el botón de activación de la búsqueda de Bluetooth. Esto no afecta la búsqueda de BLE para la ubicación ni los dispositivos locales.
Cómo filtrar los resultados del análisis
Android 6.0 y versiones posteriores incluyen el escaneo de BLE y la coincidencia de filtros en el controlador Bluetooth. Un dispositivo puede filtrar los resultados de la búsqueda y, luego, informar los eventos encontrados y perdidos relacionados con los dispositivos BLE al procesador de aplicaciones (AP). El filtrado también funciona para las búsquedas por lotes, lo que ayuda a ahorrar energía, ya que el escaneo de BLE se transfiere al firmware. Los análisis por lotes reducen la frecuencia con la que se activa el AP debido al análisis BLE de dispositivos o balizas.
La función OnFound
/OnLost
se implementa en el controlador Bluetooth y, luego, se prueba para confirmar que los dispositivos BLE no se pierdan en las búsquedas. Esto proporciona ahorros de energía y también puede brindar los siguientes beneficios:
- En el caso de un evento
OnFound
, el AP principal se activa cuando se detecta 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 del framework reciben menos notificaciones no deseadas cuando un dispositivo cercano está dentro del alcance.
- Los análisis continuos permiten que las apps del framework reciban notificaciones cuando un dispositivo está fuera de alcance.
Un filtro de análisis 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 de filtro de contenido de paquetes publicitarios.