A través de Bluetooth, los dispositivos pueden transmitir datos que se pueden usar para servicios interactivos, como audio, mensajería y telefonía. Los perfiles de Bluetooth que se usan para diferentes servicios se pueden encontrar en
include/hardware/bluetooth.h
.
Audio
Una conexión Bluetooth permite a los usuarios transmitir audio en dispositivos compatibles con Bluetooth. En la mayoría de los casos de uso de audio, el dispositivo con Android es la fuente, y el dispositivo de renderización, como una bocina o unos auriculares, es el receptor.
Control de volumen absoluto
En Android 6.0 y versiones posteriores, la pila de Bluetooth de Android permite que una fuente establezca un volumen absoluto, lo que brinda a los usuarios un control preciso sobre el volumen de audio. El dispositivo fuente envía información de audio y volumen sin atenuar al receptor. Luego, el receptor amplifica el audio según la información de volumen, de modo que los usuarios escuchen el volumen de reproducción preciso.
El dispositivo fuente también puede registrar notificaciones de volumen. Cuando se realizan cambios de volumen con los controles del receptor, este envía una notificación a la fuente. Esto permite que la fuente muestre con precisión la información de volumen en una interfaz de usuario.
El control de volumen absoluto está activado de forma predeterminada. Un usuario puede inhabilitar el control de volumen absoluto en Configuración > Sistema > Opciones para desarrolladores seleccionando el botón de activación de Inhabilitar volumen absoluto.
Códecs de audio avanzados
En Android 8.0, los dispositivos que usan el perfil de distribución de audio avanzado (A2DP) pueden admitir códecs de audio adicionales. La pila de Bluetooth admite la negociación de códecs de audio cuando los dispositivos se conectan a un receptor de audio remoto. Esta negociación selecciona el mejor códec compatible con el emisor y el receptor para proporcionar audio de alta calidad. Después de la selección, todo el audio se enruta a través del codificador seleccionado y, luego, se envía al receptor.
Implementación
Los dispositivos que ejecutan Android 8.0 y admiten A2DP obtienen automáticamente la compatibilidad adicional con códecs. Es posible que los fabricantes de dispositivos deban obtener licencias y blobs binarios independientes para algunos códecs de audio propietarios. Además de SBC, Android 8.0 admite los siguientes códecs:
- AAC
- aptX
- aptX HD
- LDAC
Los fabricantes de dispositivos pueden elegir qué códecs intentarán usar sus dispositivos primero. Cambia los siguientes valores en
res/values/config.xml
para establecer las prioridades del códec:
<!-- Configuring priorities of A2DP source codecs. Larger value means higher priority. Value -1 means the codec is disabled. Value 0 is reserved and should not be used here. Enabled codecs should have priorities in the interval [1, 999999], and each priority value should be unique. --> <integer name="a2dp_source_codec_priority_sbc">1001</integer> <integer name="a2dp_source_codec_priority_aac">2001</integer> <integer name="a2dp_source_codec_priority_aptx">3001</integer> <integer name="a2dp_source_codec_priority_aptx_hd">4001</integer> <integer name="a2dp_source_codec_priority_ldac">5001</integer>
Certificación de LDAC
El Proyecto de código abierto de Android incluye un codificador para el códec LDAC de Sony, por lo que no se necesita una licencia o un blob independiente de Sony para usarlo. Para integrar el códec LDAC en tu dispositivo, regístrate en Sony y sigue el proceso de certificación de LDAC.
El sitio web de certificación de LDAC tiene documentación sobre LDAC, como manuales de especificaciones y operaciones. El sitio de LDAC también proporciona pruebas de validación y de interoperabilidad para dispositivos móviles y tablets. Envía los resultados aprobados de las pruebas a Sony para completar la certificación de LDAC.
Funciones de la IU
Además de la compatibilidad con códecs adicionales, Android 8.0 proporciona un parámetro de configuración visible para el usuario que permite inhabilitar los códecs de audio Bluetooth de alta definición (HD). Para inhabilitar los códecs HD, el usuario puede navegar a Configuración > Dispositivos conectados > Bluetooth, presionar el ícono de ajustes junto al receptor y desmarcar la casilla de verificación Audio HD.
Los fabricantes de dispositivos que personalizan la Configuración deben implementar una forma para que los usuarios inhabiliten los códecs HD.
Mensajería
La mensajería por Bluetooth permite que los usuarios lean, exploren y redacten mensajes SMS desde un dispositivo remoto. Esta capacidad se suele usar cuando se conecta un teléfono a un sistema de infoentretenimiento en el vehículo.
Telefonía
Los servicios de telefonía Bluetooth permiten a los usuarios transmitir llamadas y sincronizar contactos desde un teléfono a otro dispositivo Bluetooth. Estas funciones se suelen usar para hacer llamadas con manos libres mientras conduces.
En Android 8.0, Bluetooth admite el tono de llamada integrado. Cuando un teléfono conectado por Bluetooth recibe una llamada entrante, el tono de llamada se reproducirá en el receptor. Habilita el tono de llamada integrado en Configuración > Sistema > Opciones para desarrolladores seleccionando el botón de activación de Habilitar tono de llamada integrado.
Funciones de Bluetooth
Para implementar los servicios de Bluetooth, la pila de Bluetooth admite una variedad de perfiles y funciones.
Perfiles de Bluetooth
Estos perfiles están disponibles para Bluetooth:
Función | Versión de Android | |||||
---|---|---|---|---|---|---|
Name | Descripción | 6.0 | 7.0 | 7.1 | 7.1.2 | 8.0 |
SAP | Perfil de acceso a la SIM | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 |
MAP | Perfil de acceso a mensajes para SMS | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
OPP | Perfil de envío de objetos | 1.1 | 1.1 | 1.1 | 1.1 | 1.2 |
OBEX sobre L2CAP | OBject EXchange over Logical Link Control and Adaptation Protocol | Sí | Sí | Sí | Sí | Sí |
Puerta de enlace de audio HFP | Perfil de manos libres | 1.6 | 1.6 | 1.7 | 1.7 | 1.7 |
HSP | Perfil de auriculares | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
A2DP | Perfil de distribución de audio avanzado | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
AVRCP | Perfil de control remoto de audio y video | 1.3 | 1.3 | 1.3 | 1.3 | 1.4 |
HID | Perfil de dispositivo de interfaz humana | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
PBAP | Perfil de acceso a la agenda telefónica | 1.1.1 | 1.1.1 | 1.1.1 | 1.1.1 | 1.2 |
HDP | Perfil de dispositivos de salud | 1.0 | 1.0 | 1.1 | 1.1 | 1.1 |
SPP | Perfil de puerto en serie | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
PAN / BNEP | Perfil de red de área personal / Protocolo de encapsulación de red Bluetooth | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
DIP | Perfil de ID de dispositivo | 1.3 | 1.3 | 1.3 | 1.3 | 1.3 |
HOGP 1.0 | HID a través de GATT | Sí | Sí | Sí | Sí | Sí |
Audio en HD | Consulta Códecs de audio avanzados. La implementación depende de las capacidades del dispositivo, tanto en la fuente como en el receptor. | No | No | No | No | Sí |
Funciones de Bluetooth de bajo consumo
Estas funciones están disponibles para BLE:
Función | Versión de Android | ||||
---|---|---|---|---|---|
Name | 6.0 | 7.0 | 7.1 | 7.1.2 | 8.0 |
Conexiones seguras BR/EDR | 4.1 | 4.1 | 4.1 | 4.1 | 5.0 |
Privacidad de LE | 4.2 | 4.2 | 4.2 | 4.2 | 5.0 |
Conexiones seguras de LE | 4.2 | 4.2 | 4.2 | 4.2 | 5.0 |
Extensiones de paquetes de datos | 4.2 | 4.2 | 4.2 | 4.2 | 5.0 |
UUID de 32 bits | Sí | Sí | Sí | Sí | Sí |
Modo dual LE central/periférico | Sí | Sí | Sí | Sí | Sí |
Modo periférico LE | Sí | Sí | Sí | Sí | Sí |
Requisitos de HCI de Google | Sí | Sí | Sí | Sí | Sí |
Canales orientados a la conexión LE | No | No | No | No | No |