L'API Bluetooth include il supporto per lavorare con i profili Bluetooth. R Il profilo Bluetooth è una specifica di interfaccia wireless per le la comunicazione tra dispositivi, ad esempio il profilo in vivavoce. Per un dispositivo mobile dispositivo per il collegamento a una cuffia wireless, entrambi i dispositivi devono supportare il Profilo in vivavoce.
L'API Bluetooth fornisce implementazioni per le seguenti profili:
- Auricolari. Il profilo Cuffie supporta le cuffie Bluetooth
utilizzati con i cellulari. Android offre
BluetoothHeadset
, che è un proxy per controllare il servizio cuffie Bluetooth. Sono inclusi profili Auricolare Bluetooth e Vivavoce (v1.5).BluetoothHeadset
supporta i comandi AT. Per ulteriori informazioni su questo argomento, vedi Comandi AT specifici del fornitore. - A2DP. Il profilo A2DP (Advanced Audio Distribution Profile) definisce la modalità
audio di alta qualità può essere riprodotto in streaming da un dispositivo all'altro tramite Bluetooth
connessione. Android offre
BluetoothA2dp
, ovvero un proxy per il controllo del servizio Bluetooth A2DP. - Dispositivo sanitario. Android fornisce il supporto per Bluetooth Health Device
Profilo (HDP). In questo modo puoi creare app che utilizzano il Bluetooth per comunicare
con dispositivi sanitari che supportano il Bluetooth, come dispositivi per il monitoraggio del battito cardiaco,
metri, termometri, bilance e così via. Per un elenco dei dispositivi supportati e
i codici di specializzazione per i dati del dispositivo corrispondenti, vedi HDP del Bluetooth
Dati dispositivo
Specializzazioni.
Questi valori sono riportati anche nelle specifiche ISO/IEEE 11073-20601 [7].
come
MDC_DEV_SPEC_PROFILE_*
nell'Allegato ai codici di nomenclatura. Per ulteriori informazioni informazioni su HDP, vedi Profilo del dispositivo sanitario.
Di seguito sono riportati i passaggi di base per lavorare con un profilo:
- Procurati l'adattatore predefinito, come descritto in Configurazione Bluetooth.
- Imposta un
BluetoothProfile.ServiceListener
Questo listener avvisaBluetoothProfile
clienti quando sono connessi o disconnessi dal servizio. - Utilizza le funzionalità di
getProfileProxy()
per stabilire una connessione all'oggetto proxy del profilo associato al profilo. Nell'esempio seguente, l'oggetto proxy del profilo è un'istanza diBluetoothHeadset
. - Nella
onServiceConnected()
, ottenere un handle all'oggetto proxy del profilo. - Una volta ottenuto l'oggetto proxy del profilo, utilizzalo per monitorare lo stato del connessione ed eseguire altre operazioni pertinenti a quel profilo.
Il seguente snippet di codice mostra come connettersi a un proxy BluetoothHeadset
per controllare il profilo Cuffie:
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);
Comandi AT specifici del fornitore
Le app possono registrarsi per ricevere trasmissioni di sistema di AT predefiniti del fornitore
comandi inviati dagli auricolari (come un comando Plantronics +XEVENT). Ad esempio:
un'app potrebbe ricevere annunci che indicano il livello della batteria di un dispositivo connesso
e avvisare l'utente o intraprendere altre azioni, se necessario. Crea una trasmissione
ricevitore per
ACTION_VENDOR_SPECIFIC_HEADSET_EVENT
per gestire i comandi AT specifici del fornitore per il visore.
Profilo dispositivo sanitario
Android supporta Bluetooth Health Device Profile (HDP). Bluetooth Health
L'API include i corsi
BluetoothHealth
,
BluetoothHealthCallback
,
e
BluetoothHealthAppConfiguration
,
descritte in Classi chiave e
interfacce.
Quando utilizzi l'API Bluetooth Health, è utile comprendere questi HDP chiave di base:
- Origine
- Un dispositivo per la salute, come una bilancia, un misuratore della glicemia o un termometro, che trasmette dati medici a uno smart device, come uno smartphone o un tablet Android.
- Lavello
- Lo smart device che riceve i dati medici. In un'app HDP,
il sink è rappresentato da un oggetto
BluetoothHealthAppConfiguration
. - Registrazione
- La procedura utilizzata per registrare un sink per comunicare con un determinato stato di salute .
- Connessione
- La procedura utilizzata per aprire un canale tra un dispositivo sanitario (fonte) e un smart device (lavandino).
Crea un'app HDP
Di seguito sono riportati i passaggi di base per la creazione di un'app HDP:
Ottieni un riferimento all'oggetto proxy
BluetoothHealth
. Come per i normali cuffie e dispositivi con profilo A2DP, devi chiamaregetProfileProxy()
con unBluetoothProfile.ServiceListener
e Tipo di profiloHEALTH
per stabilire una connessione con l'oggetto proxy del profilo.Crea un
BluetoothHealthCallback
e registra una configurazione dell'app (BluetoothHealthAppConfiguration
) che funge da sink di integrità.Stabilisci una connessione a un dispositivo per la salute.
Se connesso correttamente a un dispositivo sanitario, leggi e scrivi sullo stato dispositivo utilizzando il descrittore del file. I dati ricevuti devono essere interpretati utilizzando un responsabile sanitario, che implementa lo standard IEEE 11073 specifiche.
Al termine, chiudi il canale Salute e annulla la registrazione dell'app. Inoltre, il canale si chiude in caso di inattività prolungata.