Die Bluetooth API unterstützt die Arbeit mit Bluetooth-Profilen. A Das Bluetooth-Profil ist eine Spezifikation für drahtlose Schnittstellen für Bluetooth-basierte Kommunikation zwischen Geräten, z. B. das Freisprech-Profil. Für ein Mobilgerät mit einem kabellosen Headset verbinden können, müssen beide Geräte den Hands-Free-Profil.
Die Bluetooth API bietet Implementierungen für die folgenden Bluetooth-Funktionen: Profilen:
- Headset: Das Headset-Profil unterstützt Bluetooth-Headsets,
Mobiltelefonen verwendet werden. Android bietet
Klasse
BluetoothHeadset
, ein Proxy zur Steuerung des Bluetooth-Headset-Dienstes. Dazu gehören die Profile „Bluetooth-Headset“ und „Hands-Free (v1.5)“ verwenden. DasBluetoothHeadset
unterstützt AT-Befehle. Weitere Informationen zu diesem Thema finden Sie unter Anbieterspezifische AT-Befehle. - A2DP: Das A2DP-Profil (Advanced Audio Distribution Profile) legt fest,
Audio in hoher Qualität kann über Bluetooth von einem Gerät auf ein anderes gestreamt werden.
Android bietet
BluetoothA2dp
-Klasse, die einen Proxy zur Steuerung des Bluetooth A2DP-Dienstes. - Gesundheitsgerät. Android bietet Unterstützung für das Bluetooth Health-Gerät
Profile (HDP). Damit kannst du Apps erstellen, die über Bluetooth kommunizieren
mit Gesundheitsgeräten, die Bluetooth unterstützen, wie Herzfrequenzmesser, Blut
Meter, Thermometer, Waagen usw. Eine Liste der unterstützten Geräte und
die entsprechenden Codes für die Gerätedatenspezialisierung finden Sie unter HDP von Bluetooth
Gerätedaten
Spezialisierungen.
Auf diese Werte wird auch in der ISO/IEEE 11073-20601 [7]-Spezifikation verwiesen
als
MDC_DEV_SPEC_PROFILE_*
im Anhang zu den Nomenklaturcodes. Weitere Informationen Informationen zum HDP findest du unter Health Device Profile.
Dies sind die grundlegenden Schritte für die Arbeit mit einem Profil:
- Rufen Sie den Standardadapter ab, wie unter Bluetooth-Einrichtung
- Richten Sie ein
BluetoothProfile.ServiceListener
Dieser Listener benachrichtigtBluetoothProfile
-Clients wenn sie mit dem Dienst verbunden sind oder vom Dienst getrennt wurden. - Verwenden Sie
getProfileProxy()
zum Herstellen einer Verbindung zum Profil-Proxy-Objekt, das mit dem zu erstellen. Im folgenden Beispiel ist das Profil-Proxy-Objekt eine Instanz vonBluetoothHeadset
- In
onServiceConnected()
, Rufen Sie ein Handle zum Profil-Proxy-Objekt ab. - Sobald Sie das Profil-Proxy-Objekt haben, können Sie damit den Status des und andere Vorgänge ausführen, die für dieses Profil relevant sind.
Das folgende Code-Snippet zeigt, wie eine Verbindung zu einem BluetoothHeadset
-Proxy hergestellt wird
-Objekt, damit Sie das Headset-Profil steuern können:
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);
Anbieterspezifische AT-Befehle
Apps können sich für den Empfang von SystemBroadcasts vordefinierter anbieterspezifischer AT registrieren
Befehle, die über Headsets gesendet werden (z. B. „+XEVENT“-Befehl von Plantronics) Beispiel:
Eine App könnte Broadcasts empfangen, die den Akkustand eines verbundenen Geräts anzeigen
und den Nutzer benachrichtigen
oder bei Bedarf andere Maßnahmen ergreifen. Übertragung erstellen
für den
ACTION_VENDOR_SPECIFIC_HEADSET_EVENT
zur Verarbeitung anbieterspezifischer AT-Befehle für das Headset vorgesehen.
Gesundheitsgeräteprofil
Android unterstützt das Bluetooth Health Device Profile (HDP). Bluetooth Health
API enthält die Klassen
BluetoothHealth
,
BluetoothHealthCallback
,
und
BluetoothHealthAppConfiguration
,
die unter Wichtige Klassen und
Oberflächen.
Bei der Verwendung der Bluetooth Health API ist es hilfreich, die folgenden wichtigen HDPs zu verstehen Konzepten:
- Quelle
- Ein Gesundheitsgerät wie eine Gewichtswaage, ein Blutzuckermessgerät oder Thermometer, die bzw. das medizinische Daten an ein Smart-Home-Gerät wie ein Android-Smartphone oder -Tablet übertragen.
- Waschbecken
- Das Smart-Home-Gerät, das die medizinischen Daten empfängt. In einer HDP-App
Senke wird durch ein
BluetoothHealthAppConfiguration
-Objekt dargestellt. - Anmeldung
- Der Prozess zum Registrieren einer Senke für die Kommunikation mit einem bestimmten Zustand Gerät.
- Verbindung
- Der Prozess, mit dem ein Kanal zwischen einem Gesundheitsgerät (Quelle) und einem Smart-Home-Gerät (Spüle).
HDP-Anwendung erstellen
Dies sind die grundlegenden Schritte zur Erstellung einer HDP-App:
Rufen Sie einen Verweis auf das Proxy-Objekt
BluetoothHealth
ab. Wie bei normalen Headset und Geräten mit A2DP-Profilen verwenden, müssen SiegetProfileProxy()
mit einemBluetoothProfile.ServiceListener
und dieHEALTH
-Profiltyp , um eine Verbindung mit dem Profil-Proxy-Objekt herzustellen.BluetoothHealthCallback
erstellen und Anwendungskonfiguration registrieren (BluetoothHealthAppConfiguration
), die als Senke dient.Stelle eine Verbindung zu einem Gesundheitsgerät her.
Wenn die Verbindung zu einem Systemzustand hergestellt wurde, kann der Status gelesen und geschrieben werden. mit dem Dateideskriptor. Die empfangenen Daten müssen interpretiert werden mit einem Health Manager, der die IEEE 11073- Spezifikationen.
Wenn Sie fertig sind, schließen Sie den Kanal für Gesundheitsinformationen und heben Sie die Registrierung der App auf. Der Kanal wird bei längerer Inaktivität geschlossen.