Serviços Bluetooth

Por Bluetooth, os dispositivos podem transmitir dados que podem ser usados para serviços interativos, como áudio, mensagens e telefonia. Os perfis Bluetooth usados para diferentes serviços podem ser encontrados em include/hardware/bluetooth.h.

Áudio

Uma conexão Bluetooth permite que os usuários transmitam áudio em dispositivos habilitados para Bluetooth. Na maioria dos casos de uso de áudio, o dispositivo Android é a fonte, e o dispositivo de renderização, como um alto-falante ou um fone de ouvido, é o destino.

Controle de volume absoluto

No Android 6.0 e versões mais recentes, a pilha Bluetooth do Android permite que uma fonte defina um volume absoluto, dando aos usuários controle preciso sobre o volume do áudio. O dispositivo de origem envia informações de áudio e volume não atenuadas para o coletor. O sink amplifica o áudio de acordo com as informações de volume, para que os usuários ouçam o volume de reprodução correto.

O dispositivo de origem também pode registrar notificações de volume. Quando as mudanças de volume são feitas com controles no sink, ele envia uma notificação para a origem. Isso permite que a fonte mostre com precisão as informações de volume em uma interface do usuário.

O controle de volume absoluto fica ativado por padrão. Para desativar o controle de volume absoluto, os usuários podem acessar Configurações > Sistema > Opções do desenvolvedor e selecionar a opção Desativar volume absoluto.

Codecs de áudio avançados

No Android 8.0, os dispositivos que usam o Advanced Audio Distribution Profile (A2DP) podem oferecer suporte a outros codecs de áudio. A pilha da Bluetooth oferece suporte à negociação de codec de áudio para quando os dispositivos se conectam a um destino de áudio remoto. Essa negociação seleciona o melhor codec aceito pelo remetente e pelo sink para fornecer áudio de alta qualidade. Após a seleção, todo o áudio é roteado pelo codificador selecionado e enviado para o sink.

Implementação

Os dispositivos com o Android 8.0 que oferecem suporte ao A2DP recebem automaticamente o suporte ao codec adicional. Os fabricantes de dispositivos podem precisar de licenças e blobs binários separados para alguns codecs de áudio proprietários. Além do SBC, o Android 8.0 oferece suporte aos seguintes codecs:

  • AAC
  • aptX
  • aptX HD
  • LDAC

Os fabricantes de dispositivos podem escolher quais codecs os dispositivos tentam usar primeiro. Defina as prioridades do codec mudando os seguintes valores em 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>
      

Certificação LDAC

O Android Open Source Project inclui um codificador para o codec LDAC da Sony. Portanto, não é necessário ter uma licença ou blob separada da Sony. Para integrar o codec LDAC ao seu dispositivo, registre-se na Sony e siga o processo de certificação do LDAC.

O site de certificação do LDAC tem documentação sobre o LDAC, como manuais de especificação e operação. O site do LDAC também oferece testes de validação e interoperabilidade para dispositivos móveis e tablets. Envie os resultados dos testes aprovados para a Sony para concluir a certificação LDAC.

Recursos da interface

Além do suporte a codecs adicionais, o Android 8.0 oferece uma configuração voltada ao usuário para desativar codecs de áudio Bluetooth de alta definição (HD).

  1. Acesse Configurações > Dispositivos conectados > Bluetooth.
  2. Toque no ícone de engrenagem ao lado da sink para desativar os codecs.
  3. Desmarque a caixa de seleção Áudio em alta definição.

Os fabricantes de dispositivos que personalizam as configurações precisam implementar uma forma de desativar os codecs HD.

Mensagens

A mensagem por Bluetooth permite que os usuários leiam, naveguem e escrevam mensagens SMS em um dispositivo remoto. Esse recurso é usado com frequência ao conectar um smartphone a um sistema de infoentretenimento no veículo.

Telefonia

Os serviços de telefonia Bluetooth permitem que os usuários transmitam chamadas e sincronizem contatos de um smartphone para outro dispositivo Bluetooth. Esses recursos são usados com frequência para ligações viva-voz ao dirigir.

No Android 8.0, o Bluetooth oferece suporte a toque na banda. Quando um telefone conectado por Bluetooth recebe uma ligação, o toque é reproduzido no sink. Ative o toque na banda em Configurações > Sistema > Opções do desenvolvedor selecionando a opção Ativar toque na banda.

Recursos do Bluetooth

Para implementar os serviços Bluetooth, a pilha Bluetooth oferece suporte a vários perfis e recursos.

Perfis Bluetooth

Estes perfis estão disponíveis para Bluetooth:

Recurso Versão do Android
Nome Descrição 6.0 7.0 7.1 7.1.2 8.0
SAP Perfil de acesso ao chip 1.1 1.1 1.1 1.1 1.1
MAPA Perfil de acesso a mensagens para SMS 1.2 1.2 1.2 1.2 1.2
OPP Perfil de envio de objetos 1.1 1.1 1.1 1.1 1.2
OBEX sobre L2CAP OBject EXchange over Logical Link Control and Adaptation Protocol Sim Sim Sim Sim Sim
Gateway de áudio HFP Perfil de viva-voz 1.6 1.6 1.7 1.7 1.7
HSP (link em inglês) Perfil do fone de ouvido 1.2 1.2 1.2 1.2 1.2
A2DP Advanced Audio Distribution Profile 1.2 1.2 1.2 1.2 1.2
AVRCP Perfil de controle remoto de áudio/vídeo 1.3 1.3 1.3 1.3 1.4
HID Perfil de dispositivo de interface humana 1.0 1.0 1.0 1.0 1.0
PBAP Perfil de acesso à agenda telefônica 1.1.1 1.1.1 1.1.1 1.1.1 1.2
HDP Perfil Health Device 1.0 1.0 1.1 1.1 1.1
SPP Perfil de porta serial 1.2 1.2 1.2 1.2 1.2
PAN / BNEP Perfil de rede de área pessoal / protocolo de encapsulamento de rede Bluetooth 1.0 1.0 1.0 1.0 1.0
DIP Perfil do ID do dispositivo 1.3 1.3 1.3 1.3 1.3
HOGP 1.0 HID sobre GATT Sim Sim Sim Sim Sim
Áudio em alta definição1 Consulte "Codecs de áudio avançados" acima Não Não Não Não Sim

1 A implementação do áudio de alta definição depende dos recursos do dispositivo, tanto na fonte quanto no destino.

Recursos do Bluetooth de baixa energia

Estes recursos estão disponíveis para BLE:

Recurso Versão do Android
Nome 6.0 7.0 7.1 7.1.2 8.0
Conexões seguras BR/EDR 4.1 4.1 4.1 4.1 5.0
Privacidade do LE 4.2 4.2 4.2 4.2 5.0
Conexões seguras LE 4.2 4.2 4.2 4.2 5.0
Extensões de pacote de dados 4.2 4.2 4.2 4.2 5.0
UUIDs de 32 bits Sim Sim Sim Sim Sim
Central/periférico LE de modo duplo Sim Sim Sim Sim Sim
Modo periférico LE Sim Sim Sim Sim Sim
Requisitos de HCI do Google Sim Sim Sim Sim Sim
Canais orientados à conexão LE Não Não Não Não Não