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).
- Acesse Configurações > Dispositivos conectados > Bluetooth.
- Toque no ícone de engrenagem ao lado da sink para desativar os codecs.
- 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 |