Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
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. Das BluetoothHeadset
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:
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 von
BluetoothHeadset
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
varbluetoothHeadset:BluetoothHeadset? =null// Get the default adaptervalbluetoothAdapter:BluetoothAdapter? =BluetoothAdapter.getDefaultAdapter()privatevalprofileListener=object:BluetoothProfile.ServiceListener{overridefunonServiceConnected(profile:Int,proxy:BluetoothProfile){if(profile==BluetoothProfile.HEADSET){bluetoothHeadset=proxyasBluetoothHeadset}}overridefunonServiceDisconnected(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
BluetoothHeadsetbluetoothHeadset;// Get the default adapterBluetoothAdapterbluetoothAdapter=BluetoothAdapter.getDefaultAdapter();privateBluetoothProfile.ServiceListenerprofileListener=newBluetoothProfile.ServiceListener(){publicvoidonServiceConnected(intprofile,BluetoothProfileproxy){if(profile==BluetoothProfile.HEADSET){bluetoothHeadset=(BluetoothHeadset)proxy;}}publicvoidonServiceDisconnected(intprofile){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.
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 Sie getProfileProxy() mit einem
BluetoothProfile.ServiceListener und die
HEALTH-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.
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-07-27 (UTC)."],[],[],null,["# Bluetooth profiles\n\nThe Bluetooth API includes support for working with Bluetooth profiles. A\nBluetooth profile is a wireless interface specification for Bluetooth-based\ncommunication between devices, such as the Hands-Free profile. For a mobile\ndevice to connect to a wireless headset, both devices must support the\nHands-Free profile.\n\nThe Bluetooth API provides implementations for the following Bluetooth\nprofiles:\n\n- **Headset** . The Headset profile provides support for Bluetooth headsets to be used with mobile phones. Android provides the [`BluetoothHeadset`](/reference/android/bluetooth/BluetoothHeadset) class, which is a proxy for controlling the Bluetooth Headset Service. This includes both Bluetooth Headset and Hands-Free (v1.5) profiles. The `BluetoothHeadset` class includes support for AT commands. For more on this topic, see [Vendor-specific AT commands](#at-commands).\n- **A2DP** . The Advanced Audio Distribution Profile (A2DP) profile defines how high-quality audio can be streamed from one device to another over a Bluetooth connection. Android provides the [`BluetoothA2dp`](/reference/android/bluetooth/BluetoothA2dp) class, which is a proxy for controlling the Bluetooth A2DP Service.\n- **Health Device** . Android provides support for the Bluetooth Health Device Profile (HDP). This lets you create apps that use Bluetooth to communicate with health devices that support Bluetooth, such as heart-rate monitors, blood meters, thermometers, scales, and so on. For a list of supported devices and their corresponding device data specialization codes, see [Bluetooth's HDP\n Device Data\n Specializations](https://www.bluetooth.com/specifications/assigned-numbers/health-device-profile). These values are also referenced in the ISO/IEEE 11073-20601 \\[7\\] specification as `MDC_DEV_SPEC_PROFILE_*` in the Nomenclature Codes Annex. For more information about HDP, see [Health Device Profile](#health-profile).\n\nHere are the basic steps for working with a profile:\n\n1. Get the default adapter, as described in [Bluetooth setup](/develop/connectivity/bluetooth/setup).\n2. Set up a [`BluetoothProfile.ServiceListener`](/reference/android/bluetooth/BluetoothProfile.ServiceListener). This listener notifies [`BluetoothProfile`](/reference/android/bluetooth/BluetoothProfile) clients when they have been connected to or disconnected from the service.\n3. Use [`getProfileProxy()`](/reference/android/bluetooth/BluetoothAdapter#getProfileProxy(android.content.Context,%20android.bluetooth.BluetoothProfile.ServiceListener,%20int)) to establish a connection to the profile proxy object associated with the profile. In the following example, the profile proxy object is an instance of `BluetoothHeadset`.\n4. In [`onServiceConnected()`](/reference/android/bluetooth/BluetoothProfile.ServiceListener#onServiceConnected(int,%20android.bluetooth.BluetoothProfile)), get a handle to the profile proxy object.\n5. Once you have the profile proxy object, use it to monitor the state of the connection and perform other operations that are relevant to that profile.\n\nThe following code snippet shows how to connect to a `BluetoothHeadset` proxy\nobject so that you can control the Headset profile: \n\n### Kotlin\n\n```kotlin\nvar bluetoothHeadset: BluetoothHeadset? = null\n\n// Get the default adapter\nval bluetoothAdapter: BluetoothAdapter? = BluetoothAdapter.getDefaultAdapter()\n\nprivate val profileListener = object : BluetoothProfile.ServiceListener {\n\n override fun onServiceConnected(profile: Int, proxy: BluetoothProfile) {\n if (profile == BluetoothProfile.HEADSET) {\n bluetoothHeadset = proxy as BluetoothHeadset\n }\n }\n\n override fun onServiceDisconnected(profile: Int) {\n if (profile == BluetoothProfile.HEADSET) {\n bluetoothHeadset = null\n }\n }\n}\n\n// Establish connection to the proxy.\nbluetoothAdapter?.getProfileProxy(context, profileListener, BluetoothProfile.HEADSET)\n\n// ... call functions on bluetoothHeadset\n\n// Close proxy connection after use.\nbluetoothAdapter?.closeProfileProxy(BluetoothProfile.HEADSET, bluetoothHeadset)\n```\n\n### Java\n\n```java\nBluetoothHeadset bluetoothHeadset;\n\n// Get the default adapter\nBluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();\n\nprivate BluetoothProfile.ServiceListener profileListener = new BluetoothProfile.ServiceListener() {\n public void onServiceConnected(int profile, BluetoothProfile proxy) {\n if (profile == BluetoothProfile.HEADSET) {\n bluetoothHeadset = (BluetoothHeadset) proxy;\n }\n }\n public void onServiceDisconnected(int profile) {\n if (profile == BluetoothProfile.HEADSET) {\n bluetoothHeadset = null;\n }\n }\n};\n\n// Establish connection to the proxy.\nbluetoothAdapter.getProfileProxy(context, profileListener, BluetoothProfile.HEADSET);\n\n// ... call functions on bluetoothHeadset\n\n// Close proxy connection after use.\nbluetoothAdapter.closeProfileProxy(bluetoothHeadset);\n```\n\n### Vendor-specific AT commands\n\nApps can register to receive system broadcasts of predefined vendor-specific AT\ncommands sent by headsets (such as a Plantronics +XEVENT command). For example,\nan app could receive broadcasts that indicate a connected device's battery level\nand could notify the user or take other action as needed. Create a broadcast\nreceiver for the\n[`ACTION_VENDOR_SPECIFIC_HEADSET_EVENT`](/reference/android/bluetooth/BluetoothHeadset#ACTION_VENDOR_SPECIFIC_HEADSET_EVENT)\nintent to handle vendor-specific AT commands for the headset.\n\nHealth Device Profile\n---------------------\n\nAndroid supports the Bluetooth Health Device Profile (HDP). The Bluetooth Health\nAPI includes the classes\n[`BluetoothHealth`](/reference/android/bluetooth/BluetoothHealth),\n[`BluetoothHealthCallback`](/reference/android/bluetooth/BluetoothHealthCallback),\nand\n[`BluetoothHealthAppConfiguration`](/reference/android/bluetooth/BluetoothHealthAppConfiguration),\nwhich are described in [Key classes and\ninterfaces](/develop/connectivity/bluetooth#key-classes).\n| **Caution:** The Health Device Profile (HDP) and MCAP protocols are no longer used. New apps should use Bluetooth Low Energy based solutions such as [`BluetoothGatt`](/reference/android/bluetooth/BluetoothGatt), [`BluetoothAdapter.listenUsingL2capChannel()`](/reference/android/bluetooth/BluetoothAdapter#listenUsingL2capChannel()), or [`BluetoothDevice#createL2capChannel(int)`](/reference/android/bluetooth/BluetoothDevice#createL2capChannel(int)).\n\nWhen using the Bluetooth Health API, it's helpful to understand these key HDP\nconcepts:\n\nSource\n: A health device, such as a weight scale, glucose meter, or thermometer, which\n transmits medical data to a smart device, such as an Android phone or tablet.\n\nSink\n: The smart device that receives the medical data. In an HDP app, the\n sink is represented by a `BluetoothHealthAppConfiguration` object.\n\nRegistration\n: The process used to register a sink for communicating with a particular health\n device.\n\nConnection\n: The process used to open a channel between a health device (source) and a\n smart device (sink).\n\n### Create an HDP app\n\nHere are the basic steps involved in creating an HDP app:\n\n1. Get a reference to the `BluetoothHealth` proxy object. As with regular\n headset and A2DP profile devices, you must call `getProfileProxy()` with a\n `BluetoothProfile.ServiceListener` and the\n [`HEALTH`](/reference/android/bluetooth/BluetoothProfile#HEALTH) profile type\n to establish a connection with the profile proxy object.\n\n2. Create a `BluetoothHealthCallback` and register an app configuration\n (`BluetoothHealthAppConfiguration`) that acts as a health sink.\n\n3. Establish a connection to a health device.\n\n | **Note:** Some devices initiate the connection automatically. It is unnecessary to carry out this step for those devices.\n4. When connected successfully to a health device, read and write to the health\n device using the file descriptor. The received data needs to be interpreted\n using a health manager, which implements the [IEEE 11073\n specifications](https://standards.ieee.org/standard/11073-10207-2017.html).\n\n5. When done, close the health channel and unregister the app. The channel also\n closes when there is extended inactivity."]]