QBluetoothLocalDevice Class
Die Klasse „QBluetoothLocalDevice“ ermöglicht den Zugriff auf das lokale Bluetooth-Gerät. Mehr...
| Header: | #include <QBluetoothLocalDevice> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Bluetooth) target_link_libraries(mytarget PRIVATE Qt6::Bluetooth) |
| qmake: | QT += bluetooth |
| Erbt von: | QObject |
Öffentliche Typen
| enum | Error { NoError, PairingError, MissingPermissionsError, UnknownError } |
| enum | HostMode { HostPoweredOff, HostConnectable, HostDiscoverable, HostDiscoverableLimitedInquiry } |
| enum | Pairing { Unpaired, Paired, AuthorizedPaired } |
Öffentliche Funktionen
| QBluetoothLocalDevice(QObject *parent = nullptr) | |
| QBluetoothLocalDevice(const QBluetoothAddress &address, QObject *parent = 0) | |
| virtual | ~QBluetoothLocalDevice() |
| QBluetoothAddress | address() const |
| QList<QBluetoothAddress> | connectedDevices() const |
| QBluetoothLocalDevice::HostMode | hostMode() const |
| bool | isValid() const |
| QString | name() const |
| QBluetoothLocalDevice::Pairing | pairingStatus(const QBluetoothAddress &address) const |
| void | powerOn() |
| void | requestPairing(const QBluetoothAddress &address, QBluetoothLocalDevice::Pairing pairing) |
| void | setHostMode(QBluetoothLocalDevice::HostMode mode) |
Signale
| void | deviceConnected(const QBluetoothAddress &address) |
| void | deviceDisconnected(const QBluetoothAddress &address) |
(since 6.2) void | errorOccurred(QBluetoothLocalDevice::Error error) |
| void | hostModeStateChanged(QBluetoothLocalDevice::HostMode state) |
| void | pairingFinished(const QBluetoothAddress &address, QBluetoothLocalDevice::Pairing pairing) |
Statische öffentliche Mitglieder
| QList<QBluetoothHostInfo> | allDevices() |
Ausführliche Beschreibung
QBluetoothLocalDevice stellt Funktionen zum Abrufen und Festlegen des Status lokaler Bluetooth-Geräte bereit.
Unter iOS kann diese Klasse nicht verwendet werden, da die Plattform keine Daten oder APIs bereitstellt, die Informationen über das lokale Bluetooth-Gerät liefern könnten.
Dokumentation zu den Mitgliedstypen
enum QBluetoothLocalDevice::Error
Diese Enumeration beschreibt Fehler, die möglicherweise zurückgegeben werden
| Konstante | Wert | Beschreibung |
|---|---|---|
QBluetoothLocalDevice::NoError | 0 | Kein bekannter Fehler |
QBluetoothLocalDevice::PairingError | 1 | Fehler beim Koppeln |
QBluetoothLocalDevice::MissingPermissionsError (since Qt 6.4) | 2 | Das Betriebssystem fordert Berechtigungen an, die vom Benutzer nicht erteilt wurden. |
QBluetoothLocalDevice::UnknownError | 100 | Unbekannter Fehler |
enum QBluetoothLocalDevice::HostMode
Diese Enumeration beschreibt die meisten lokalen Bluetooth-Geräte.
| Konstante | Wert | Beschreibung |
|---|---|---|
QBluetoothLocalDevice::HostPoweredOff | 0 | Gerät ausschalten |
QBluetoothLocalDevice::HostConnectable | 1 | Externe Bluetooth-Geräte können eine Verbindung zum lokalen Bluetooth-Gerät herstellen, wenn sie zuvor mit diesem gekoppelt wurden oder dessen Adresse anderweitig kennen. Dadurch wird das Gerät eingeschaltet, falls es ausgeschaltet war. |
QBluetoothLocalDevice::HostDiscoverable | 2 | Externe Bluetooth-Geräte können das lokale Bluetooth-Gerät erkennen. Das Gerät ist zudem verbindbar und eingeschaltet. Unter Android kann dieser Modus maximal 5 Minuten lang aktiv sein. |
QBluetoothLocalDevice::HostDiscoverableLimitedInquiry | 3 | Entfernte Bluetooth-Geräte können die Anwesenheit des lokalen Bluetooth-Geräts bei einer eingeschränkten Abfrage erkennen. Dies sollte für Ortungsdienste verwendet werden, die nur für einen begrenzten Zeitraum erkennbar sind. Dies kann die Erkennung zwischen Spielgeräten beschleunigen, da die Dienstermittlung auf Geräten, die sich nicht im „LimitedInquiry“-Modus befinden, übersprungen werden kann. In diesem Modus ist das Gerät verbindbar und bei Bedarf eingeschaltet. Dieser Modus wird unter Android nicht unterstützt. Hinweis: Unter macOS ist es nicht möglich, den „ hostMode “ () festzulegen. Die gemeldeten Host-Modi sind auf „HostPoweredOff“ und „HostConnectable“ beschränkt. Hinweis: Unter Windows ist es nicht möglich, die „ hostMode “ () auf „HostDiscoverable“ oder „HostDiscoverableLimitedInquiry“ zu setzen. Die Verwendung dieser Modi entspricht dem Modus „HostConnectable“. Hinweis: Ab Android 13 (API-Level 33) basiert der Zustand „HostPoweredOff“ auf einer nicht-öffentlichen Android-API, da die öffentliche API veraltet ist (siehe (disable())). Dies kann sich in einer zukünftigen Android-Version ändern. Hinweis: Zumindest unter Android 12 kann die Bluetooth-Sichtbarkeitseinstellung des Geräts das Ergebnis der Einstellung von „HostDiscoverable“ oder „HostConnectable“ beeinflussen. Ist die Sichtbarkeit beispielsweise deaktiviert, ist es möglicherweise nicht möglich, in den Modus „HostDiscoverable“ zu wechseln, stattdessen wird „HostConnectable“ verwendet. Dies kann sich in zukünftigen Android-Versionen ändern. |
enum QBluetoothLocalDevice::Pairing
Diese Enumeration beschreibt den Kopplungsstatus zwischen den beiden Bluetooth-Geräten.
| Konstante | Wert | Beschreibung |
|---|---|---|
QBluetoothLocalDevice::Unpaired | 0 | Die Bluetooth-Geräte sind nicht gekoppelt. |
QBluetoothLocalDevice::Paired | 1 | Die Bluetooth-Geräte sind gekoppelt. Das System fordert den Benutzer zur Autorisierung auf, wenn das Remote-Gerät eine Verbindung zum lokalen Gerät herstellt. |
QBluetoothLocalDevice::AuthorizedPaired | 2 | Die Bluetooth-Geräte sind gekoppelt. Das System fordert den Benutzer nicht zur Autorisierung auf, wenn das Remote-Gerät eine Verbindung zum lokalen Gerät herstellt. |
Dokumentation der Mitgliedsfunktionen
[explicit] QBluetoothLocalDevice::QBluetoothLocalDevice(QObject *parent = nullptr)
Erstellt ein `QBluetoothLocalDevice` mit ` parent`.
Hinweis: Ab Android 12 (API-Level 31) erfordert die Instanziierung dieser Klasse Bluetooth-Laufzeitberechtigungen (BLUETOOTH_SCAN und BLUETOOTH_CONNECT). Wenn die Berechtigungen nicht erteilt werden, ist das Gerät ungültig.
Siehe auch ` isValid()`.
[explicit] QBluetoothLocalDevice::QBluetoothLocalDevice(const QBluetoothAddress &address, QObject *parent = 0)
Erstellen Sie ein neues `QBluetoothLocalDevice` für ` address`. Wenn ` address ` mit der Standardkonstruktion initialisiert wird, wählt das resultierende lokale Gerät das lokale Standardgerät aus.
Hinweis: Ab Android 12 (API-Level 31) erfordert die Instanziierung dieser Klasse Bluetooth-Laufzeitberechtigungen (BLUETOOTH_SCAN und BLUETOOTH_CONNECT). Wenn die Berechtigungen nicht erteilt werden, ist das Gerät ungültig.
Siehe auch ` isValid()`.
[virtual noexcept] QBluetoothLocalDevice::~QBluetoothLocalDevice()
Zerstört die „ QBluetoothLocalDevice “.
QBluetoothAddress QBluetoothLocalDevice::address() const
Gibt die MAC-Adresse dieses Bluetooth-Geräts zurück.
Hinweis: Unter Android gibt diese Funktion ab Android 6.0 stets den konstanten Wert „ 02:00:00:00:00:00 “ als lokale Adresse zurück. Der programmatische Zugriff auf die lokale MAC-Adresse des Geräts wurde entfernt.
[static] QList<QBluetoothHostInfo> QBluetoothLocalDevice::allDevices()
Gibt eine Liste aller verfügbaren lokalen Bluetooth-Geräte zurück. Unter macOS gibt es nur das „Standard“-Gerät.
QList<QBluetoothAddress> QBluetoothLocalDevice::connectedDevices() const
Gibt die Liste der verbundenen Geräte zurück. Diese Liste unterscheidet sich von der Liste der aktuell gekoppelten Geräte.
Unter Android und macOS ist es nicht möglich, eine Liste der verbundenen Geräte abzurufen. Es ist lediglich möglich, Änderungen bei der Verbindung bzw. Trennung zu überwachen. Der Einfachheit halber überwacht diese Klasse seit ihrer Instanziierung alle Verbindungs- und Trennungsereignisse und gibt beim Aufruf dieser Funktion die aktuelle Liste zurück. Daher ist es möglich, dass diese Funktion kurz nach der Erstellung einer Instanz eine leere Liste zurückgibt.
Siehe auch „ deviceConnected()“ und „ deviceDisconnected()“.
[signal] void QBluetoothLocalDevice::deviceConnected(const QBluetoothAddress &address)
Dieses Signal wird ausgegeben, wenn das lokale Gerät eine Verbindung zu einem entfernten Gerät mit der Funktion „ address “ herstellt.
Siehe auch „ deviceDisconnected()“ und „ connectedDevices()“.
[signal] void QBluetoothLocalDevice::deviceDisconnected(const QBluetoothAddress &address)
Dieses Signal wird ausgegeben, wenn das lokale Gerät die Verbindung zu einem entfernten Bluetooth-Gerät mit der Funktion „ address “ trennt.
Siehe auch „ deviceConnected()“ und „ connectedDevices()“.
[signal, since 6.2] void QBluetoothLocalDevice::errorOccurred(QBluetoothLocalDevice::Error error)
Es wird ein Signal ausgelöst, wenn beim Koppeln ein Ausnahme error auftritt.
Diese Funktion wurde in Qt 6.2 eingeführt.
QBluetoothLocalDevice::HostMode QBluetoothLocalDevice::hostMode() const
Gibt den aktuellen Host-Modus dieses lokalen Bluetooth-Geräts zurück. Unter macOS ist dies entweder „ HostPoweredOff “ oder „ HostConnectable “.
Siehe auch „ setHostMode()“.
[signal] void QBluetoothLocalDevice::hostModeStateChanged(QBluetoothLocalDevice::HostMode state)
Die „ state “ des Betreibers ist nun unter einer anderen Adresse erreichbar: HostMode.
bool QBluetoothLocalDevice::isValid() const
Gibt „ true “ zurück, wenn „ QBluetoothLocalDevice “ ein verfügbares lokales Bluetooth-Gerät darstellt; andernfalls wird „false“ zurückgegeben.
Wird der durch eine Instanz dieser Klasse repräsentierte lokale Bluetooth-Adapter aus dem System entfernt (z. B. durch Entfernen des zugrunde liegenden Bluetooth-Dongles), wird diese Instanz ungültig. Eine bereits ungültige QBluetoothLocalDevice -Instanz bleibt auch dann ungültig, wenn derselbe Bluetooth-Adapter wieder an das System angeschlossen wird.
Hinweis: Ab Android 12 (API-Level 31) erfordert die Instanziierung dieser Klasse Bluetooth-Laufzeitberechtigungen (BLUETOOTH_SCAN und BLUETOOTH_CONNECT). Werden die Berechtigungen nicht erteilt, ist das Gerät ungültig.
Siehe auch ` allDevices()`.
QString QBluetoothLocalDevice::name() const
Gibt den Namen zurück, den der Benutzer diesem Bluetooth-Gerät zugewiesen hat.
[signal] void QBluetoothLocalDevice::pairingFinished(const QBluetoothAddress &address, QBluetoothLocalDevice::Pairing pairing)
Die Kopplung bzw. das Aufheben der Kopplung wurde mit ` address` abgeschlossen. Der aktuelle Kopplungsstatus ist in ` pairing` zu finden. Wenn die Kopplungsanfrage nicht erfolgreich war, wird dieses Signal nicht ausgegeben. Das Signal ` errorOccurred()` wird ausgegeben, wenn die Kopplungsanfrage fehlgeschlagen ist. Das Signal wird ausschließlich für Kopplungsanfragen ausgegeben, die zuvor durch den Aufruf von ` requestPairing()` der aktuellen Objektinstanz angefordert wurden.
QBluetoothLocalDevice::Pairing QBluetoothLocalDevice::pairingStatus(const QBluetoothAddress &address) const
Gibt den aktuellen Bluetooth-Kopplungsstatus von „ address “ zurück: „nicht gekoppelt“, „gekoppelt“ oder „gekoppelt und autorisiert“.
void QBluetoothLocalDevice::powerOn()
Schaltet das Gerät ein, nachdem es in den Zustand „ hostMode “ () zurückversetzt wurde, sofern es ausgeschaltet war.
Hinweis: Aufgrund unterschiedlicher Sicherheitsrichtlinien auf den unterstützten Plattformen kann diese Methode auf den verschiedenen Plattformen zu unterschiedlichen Verhaltensweisen führen. Beispielsweise kann das System den Benutzer um Bestätigung bitten, bevor Bluetooth ein- oder ausgeschaltet wird. Unter macOS ist es nicht möglich, Bluetooth ein- oder auszuschalten. Weitere Informationen finden Sie in der plattformspezifischen Bluetooth-Dokumentation.
void QBluetoothLocalDevice::requestPairing(const QBluetoothAddress &address, QBluetoothLocalDevice::Pairing pairing)
Legen Sie den Status „ pairing “ mit „ address “ fest. Die Ergebnisse werden über das Signal „ pairingFinished()“ zurückgegeben.
Unter Android und macOS ist der Status „ AuthorizedPaired “ nicht möglich und verhält sich wie „Paired“. Unter Windows liegt die Entscheidung über den genauen Kopplungsmodus beim Betriebssystem.
Unter macOS ist es nicht möglich, die Kopplung eines Geräts aufzuheben. Wird „Unpaired“ angefordert, wird sofort „ pairingFinished()“ ausgelöst, obwohl das Gerät weiterhin gekoppelt bleibt. Es ist möglich, die Kopplung für ein zuvor entkoppeltes Gerät anzufordern. Zudem verhält sich „ AuthorizedPaired “ genauso wie „ Paired “.
Achtung: Das Herstellen einer Kopplung kann einige Minuten dauern und erfordert möglicherweise eine Bestätigung durch den Benutzer.
void QBluetoothLocalDevice::setHostMode(QBluetoothLocalDevice::HostMode mode)
Stellt den Host-Modus dieses lokalen Bluetooth-Geräts auf „ mode “ ein.
Bestimmte Vorgänge, wie das Ein- oder Ausschalten des Geräts, können einige Zeit in Anspruch nehmen. Daher sollten nachfolgende Aufrufe erst erfolgen, nachdem das Signal „ hostModeStateChanged()“ die vorherige Anfrage abgeschlossen hat. Wird dies ignoriert, ist das Ergebnis einer solchen Aufrufkette nicht eindeutig definiert.
Hinweis: Aufgrund unterschiedlicher Sicherheitsrichtlinien auf den unterstützten Plattformen kann sich das Verhalten dieser Methode auf den verschiedenen Plattformen unterscheiden. Beispielsweise kann das System den Benutzer vor dem Ein- oder Ausschalten von Bluetooth um Bestätigung bitten, und möglicherweise werden nicht alle Host-Modi unterstützt. Unter macOS ist es nicht möglich, den Status von ` hostMode()` programmgesteuert zu ändern. Der Benutzer kann Bluetooth nur in den Systemeinstellungen ein- oder ausschalten. Unter Windows muss diese Methode vom UI-Thread aus aufgerufen werden, da möglicherweise eine Bestätigung durch den Benutzer erforderlich ist. Weitere Informationen finden Sie in der plattformspezifischen Bluetooth-Dokumentation.
Siehe auch ` hostMode()`.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.