A API Bluetooth inclui suporte para trabalhar com perfis Bluetooth. Um O perfil Bluetooth é uma especificação de interface sem fio comunicação entre dispositivos, como o perfil de viva-voz. Para dispositivos móveis para se conectar a um fone de ouvido sem fio, os dois dispositivos devem ter suporte ao Perfil de viva-voz.
A API Bluetooth fornece implementações para os seguintes tipos de conexão perfis:
- Fone de ouvido. O perfil Headset permite que fones de ouvido Bluetooth sejam
usados com celulares. O Android oferece
BluetoothHeadset
, que é um proxy para controlar o serviço de fones de ouvido Bluetooth. Isso inclui para os perfis Bluetooth Headset e Hands-Free (v1.5). OBluetoothHeadset
inclui suporte para comandos AT. Para saber mais sobre esse assunto, consulte Comandos AT específicos do fornecedor. - A2DP (link em inglês). O perfil Advanced Audio Distribution Profile (A2DP) define como
áudio de alta qualidade pode ser transmitido de um dispositivo para outro através de um Bluetooth
uma conexão com a Internet. O Android oferece
classe
BluetoothA2dp
, que é um proxy para controlar o Bluetooth A2DP Service. - Dispositivo de saúde. O Android oferece suporte ao Bluetooth Health Device
do usuário (HDP). Isso permite criar apps que usam Bluetooth para se comunicar
com dispositivos de saúde compatíveis com Bluetooth, como monitores de frequência cardíaca,
metros, termômetros, balanças e assim por diante. Para uma lista de dispositivos e
os códigos de especialização de dados do dispositivo correspondentes, consulte HDP do Bluetooth
Dados do dispositivo
Especializações.
Esses valores também são referenciados na especificação ISO/IEEE 11073-20601 [7]
como
MDC_DEV_SPEC_PROFILE_*
no Anexo de Códigos de Nomenclatura. Para mais informações sobre HDP, consulte Perfil de dispositivo médico.
Veja a seguir as etapas básicas para trabalhar com um perfil:
- Use o adaptador padrão, conforme descrito em Configuração do Bluetooth.
- Configure um
BluetoothProfile.ServiceListener
Esse listener notificaBluetoothProfile
clientes quando o dispositivo foi conectado ou desconectado do serviço. - Usar
getProfileProxy()
para estabelecer uma conexão com o objeto de proxy de perfil associado ao perfil. No exemplo a seguir, o objeto de proxy de perfil é uma instância doBluetoothHeadset
: - Em
onServiceConnected()
, recebe um handle para o objeto de proxy de perfil. - Assim que você tiver o objeto de proxy do perfil, use-o para monitorar o estado da e realizar outras operações relevantes para esse perfil.
O snippet de código a seguir mostra como se conectar a um proxy BluetoothHeadset
para que você possa controlar o perfil Headset:
Kotlin
var bluetoothHeadset: BluetoothHeadset? = null // Get the default adapter val bluetoothAdapter: BluetoothAdapter? = BluetoothAdapter.getDefaultAdapter() private val profileListener = object : BluetoothProfile.ServiceListener { override fun onServiceConnected(profile: Int, proxy: BluetoothProfile) { if (profile == BluetoothProfile.HEADSET) { bluetoothHeadset = proxy as BluetoothHeadset } } override fun onServiceDisconnected(profile: Int) { if (profile == BluetoothProfile.HEADSET) { bluetoothHeadset = null } } } // Establish connection to the proxy. bluetoothAdapter?.getProfileProxy(context, profileListener, BluetoothProfile.HEADSET) // ... call functions on bluetoothHeadset // Close proxy connection after use. bluetoothAdapter?.closeProfileProxy(BluetoothProfile.HEADSET, bluetoothHeadset)
Java
BluetoothHeadset bluetoothHeadset; // Get the default adapter BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); private BluetoothProfile.ServiceListener profileListener = new BluetoothProfile.ServiceListener() { public void onServiceConnected(int profile, BluetoothProfile proxy) { if (profile == BluetoothProfile.HEADSET) { bluetoothHeadset = (BluetoothHeadset) proxy; } } public void onServiceDisconnected(int profile) { if (profile == BluetoothProfile.HEADSET) { bluetoothHeadset = null; } } }; // Establish connection to the proxy. bluetoothAdapter.getProfileProxy(context, profileListener, BluetoothProfile.HEADSET); // ... call functions on bluetoothHeadset // Close proxy connection after use. bluetoothAdapter.closeProfileProxy(bluetoothHeadset);
Comandos AT específicos de fornecedores
Os aplicativos podem se registrar para receber transmissões do sistema de TAs predefinidas específicas de fornecedores
comandos enviados por fones de ouvido (como um comando +XEVENT da Plantronics). Por exemplo:
um aplicativo pode receber transmissões que indicam o nível de bateria de um dispositivo conectado
além de notificar o usuário
ou realizar outras ações conforme necessário. Criar uma transmissão
para o
ACTION_VENDOR_SPECIFIC_HEADSET_EVENT
para lidar com comandos AT específicos do fornecedor para o fone de ouvido.
Perfil Health Device
O Android oferece suporte ao Perfil de Dispositivo Saúde do Bluetooth (HDP, na sigla em inglês). A integridade do Bluetooth
A API inclui as classes
BluetoothHealth
,
BluetoothHealthCallback
,
e
BluetoothHealthAppConfiguration
,
que são descritos em Classes principais e
de código aberto.
Ao usar a API Bluetooth Health, é útil entender esses principais HDPs conceitos importantes:
- Origem
- Um dispositivo de saúde, como uma balança, um medidor de glicose ou um termômetro, que transmite dados médicos para um dispositivo inteligente, como um smartphone ou tablet Android.
- Coletor
- O dispositivo inteligente que recebe os dados médicos. Em um app HDP,
o coletor é representado por um objeto
BluetoothHealthAppConfiguration
. - Registro
- O processo usado para registrar um coletor para se comunicar com uma saúde específica dispositivo.
- Conexão
- O processo usado para abrir um canal entre um dispositivo de saúde (fonte) e um dispositivo inteligente (coletor).
Criar um app HDP
Veja as etapas básicas envolvidas na criação de um app HDP:
Acesse uma referência ao objeto de proxy
BluetoothHealth
. Assim como acontece fone de ouvido e dispositivos com perfil A2DP, será necessário chamargetProfileProxy()
com umBluetoothProfile.ServiceListener
e o Tipo de perfil doHEALTH
para estabelecer uma conexão com o objeto de proxy do perfil.Criar um
BluetoothHealthCallback
e registrar uma configuração de app (BluetoothHealthAppConfiguration
) que atua como um coletor de integridade.Estabeleça uma conexão a um dispositivo de saúde.
Quando conectado a um dispositivo de saúde, leia e grave no usando o descritor de arquivo. Os dados recebidos precisam ser interpretados usando um gerenciador de saúde, que implementa a norma IEEE 11073 especificações.
Quando terminar, feche o canal de saúde e cancele a inscrição do app. O canal também fecha quando há um longo período de inatividade.