Servicios de Bluetooth

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
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
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

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
Modo dual LE central/periférico
Modo periférico LE
Requisitos de HCI de Google
Canales orientados a la conexión LE No No No No No