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 Android es la fuente, y el dispositivo de renderización, como una bocina o unos auriculares, es el sumidero.

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 les brinda a los usuarios un control preciso sobre el volumen de audio. El dispositivo de origen envía audio y volumen sin atenuar al sink. Luego, el sink amplifica el audio según la información de volumen para que los usuarios escuchen un volumen de reproducción preciso.

El dispositivo de origen también puede registrar notificaciones de volumen. Cuando se realizan cambios de volumen con los controles del sumidero, este envía una notificación a la fuente. Esto permite que la fuente muestre con precisión información del volumen en una interfaz de usuario.

El control de volumen absoluto está activado de forma predeterminada. Para inhabilitar el control de volumen absoluto, los usuarios pueden ir a Configuración > Sistema > Opciones para desarrolladores y seleccionar 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 para cuando los dispositivos se conectan a un receptor de audio remoto. Esta negociación selecciona el mejor códec que admiten el remitente 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 con el códec adicional. Es posible que los fabricantes de dispositivos necesiten 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 intentan usar primero sus dispositivos. Para establecer las prioridades del códec, cambia los siguientes valores en res/values/config.xml:

  <!-- 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 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 separados de Sony. 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 operación y especificaciones. El sitio de LDAC también proporciona pruebas de validación e interoperabilidad para dispositivos móviles y tablets. Envía los resultados de las pruebas aprobadas 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 una configuración para el usuario para inhabilitar los códecs de audio Bluetooth de alta definición (HD).

  1. Navega a Configuración > Dispositivos conectados > Bluetooth.
  2. Presiona el ícono de ajustes junto al sink para el que deseas inhabilitar los codecs.
  3. Desmarca la casilla de verificación Audio HD.

Los fabricantes de dispositivos que personalizan la configuración deben implementar una manera para que los usuarios inhabiliten los códecs de alta definición.

Mensajería

La mensajería por Bluetooth permite a los usuarios leer, explorar y redactar mensajes SMS desde un dispositivo remoto. Esta función se suele usar cuando se conecta un teléfono a un sistema de infoentretenimiento integrado en el vehículo.

Telefonía

Los servicios de telefonía Bluetooth permiten a los usuarios transmitir llamadas y sincronizar contactos de un teléfono a otro dispositivo Bluetooth. Estas funciones se suelen usar para las llamadas con manos libres mientras se conduce.

En Android 8.0, Bluetooth admite tono de llamada en banda. Cuando un teléfono conectado a través de Bluetooth recibe una llamada entrante, el tono de llamada se reproduce en el sumidero. Habilita el tono de llamada en banda en Configuración > Sistema > Opciones para desarrolladores seleccionando el botón de activación Habilitar tono de llamada en banda.

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 Intercambio de objetos a través del protocolo de control y adaptación de vínculos lógicos
Puerta de enlace de audio HFP Perfil 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 encapsulamiento de red de 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 sobre GATT
Audio HD1 Consulta "Códecs de audio avanzados" más arriba. No No No No

1 La implementación de audio HD depende de las capacidades del dispositivo, tanto en la fuente como en el destino.

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