QBluetoothLocalDevice Class
La clase QBluetoothLocalDevice permite acceder al dispositivo Bluetooth local. Más...
| Cabecera: | #include <QBluetoothLocalDevice> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Bluetooth)target_link_libraries(mytarget PRIVATE Qt6::Bluetooth) |
| qmake: | QT += bluetooth |
| Hereda: | QObject |
Tipos Públicos
| enum | Error { NoError, PairingError, MissingPermissionsError, UnknownError } |
| enum | HostMode { HostPoweredOff, HostConnectable, HostDiscoverable, HostDiscoverableLimitedInquiry } |
| enum | Pairing { Unpaired, Paired, AuthorizedPaired } |
Funciones Públicas
| 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) |
Señales
| 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) |
Miembros públicos estáticos
| QList<QBluetoothHostInfo> | allDevices() |
Descripción detallada
QBluetoothLocalDevice proporciona funciones para obtener y establecer el estado de los dispositivos Bluetooth locales.
En iOS, esta clase no se puede utilizar porque la plataforma no expone ningún dato o API que pueda proporcionar información sobre el dispositivo Bluetooth local.
Documentación de tipos de miembros
enum QBluetoothLocalDevice::Error
Este enum describe los errores que pueden ser devueltos
| Constante | Valor | Descripción |
|---|---|---|
QBluetoothLocalDevice::NoError | 0 | Ningún error conocido |
QBluetoothLocalDevice::PairingError | 1 | Error en el emparejamiento |
QBluetoothLocalDevice::MissingPermissionsError (since Qt 6.4) | 2 | El sistema operativo solicita permisos que no fueron concedidos por el usuario. |
QBluetoothLocalDevice::UnknownError | 100 | Error desconocido |
enum QBluetoothLocalDevice::HostMode
Este enum describe la mayoría del dispositivo Bluetooth local.
| Constante | Valor | Descripción |
|---|---|---|
QBluetoothLocalDevice::HostPoweredOff | 0 | Apagar el dispositivo |
QBluetoothLocalDevice::HostConnectable | 1 | Los dispositivos Bluetooth remotos pueden conectarse al dispositivo Bluetooth local si se han emparejado previamente con él o conocen su dirección. Esto enciende el dispositivo si estaba apagado. |
QBluetoothLocalDevice::HostDiscoverable | 2 | Los dispositivos Bluetooth remotos pueden descubrir la presencia del dispositivo Bluetooth local. El dispositivo también podrá conectarse y encenderse. En Android, este modo sólo puede estar activo durante un máximo de 5 minutos. |
QBluetoothLocalDevice::HostDiscoverableLimitedInquiry | 3 | Los dispositivos Bluetooth remotos pueden descubrir la presencia del dispositivo Bluetooth local al realizar una consulta limitada. Esto debería utilizarse para localizar servicios que sólo se hacen descubribles durante un periodo de tiempo limitado. Esto puede acelerar el descubrimiento entre dispositivos de juego, ya que el descubrimiento de servicios se puede omitir en dispositivos que no estén en modo de consulta limitada. En este modo, el dispositivo se podrá conectar y encender, si es necesario. Este modo no es compatible con Android. |
Nota: En macOS, no es posible configurar hostMode(). Los modos de host indicados se limitan a HostPoweredOff y HostConnectable.
Nota: en Windows, no es posible definir hostMode() como HostDiscoverable o HostDiscoverableLimitedInquiry. El uso de estos modos es equivalente a HostConnectable.
Nota: A partir de Android 13 (nivel de API 33) el estado HostPoweredOff se basa en la API no pública de Android, ya que la pública ha quedado obsoleta, véase(disable()). Esto puede cambiar en una futura versión de Android.
Nota: Al menos en Android 12 la configuración de la visibilidad Bluetooth del dispositivo puede dictar el resultado de establecer HostDiscoverable o HostConnectable. Por ejemplo, si la visibilidad está desactivada, puede que no sea posible entrar en el modo HostDiscoverable, pero HostConnectable se utilizará en su lugar. Esto puede cambiar en futuras versiones de Android.
enum QBluetoothLocalDevice::Pairing
Este enum describe el estado de emparejamiento entre los dos dispositivos Bluetooth.
| Constante | Valor | Descripción |
|---|---|---|
QBluetoothLocalDevice::Unpaired | 0 | Los dispositivos Bluetooth no están emparejados. |
QBluetoothLocalDevice::Paired | 1 | Los dispositivos Bluetooth están emparejados. El sistema pedirá autorización al usuario cuando el dispositivo remoto inicie una conexión con el dispositivo local. |
QBluetoothLocalDevice::AuthorizedPaired | 2 | Los dispositivos Bluetooth están emparejados. El sistema no pedirá autorización al usuario cuando el dispositivo remoto inicie una conexión con el dispositivo local. |
Documentación de la función de miembro
[explicit] QBluetoothLocalDevice::QBluetoothLocalDevice(QObject *parent = nullptr)
Construye un QBluetoothLocalDevice con parent.
Nota: A partir de Android 12 (API nivel 31), la construcción de esta clase requiere permisos de ejecución bluetooth(BLUETOOTH_SCAN y BLUETOOTH_CONNECT). Si no se conceden los permisos, el dispositivo no será válido.
Véase también isValid().
[explicit] QBluetoothLocalDevice::QBluetoothLocalDevice(const QBluetoothAddress &address, QObject *parent = 0)
Construye un nuevo QBluetoothLocalDevice para address. Si address se construye por defecto el dispositivo local resultante selecciona el dispositivo local por defecto.
Nota: A partir de Android 12 (API nivel 31), la construcción de esta clase requiere permisos de ejecución bluetooth(BLUETOOTH_SCAN y BLUETOOTH_CONNECT). Si no se conceden los permisos, el dispositivo no será válido.
Véase también isValid().
[virtual noexcept] QBluetoothLocalDevice::~QBluetoothLocalDevice()
Destruye el QBluetoothLocalDevice.
QBluetoothAddress QBluetoothLocalDevice::address() const
Devuelve la dirección MAC de este dispositivo Bluetooth.
Nota: En Android, esta función siempre devuelve el valor constante 02:00:00:00:00:00 como dirección local a partir de Android 6.0. Se ha eliminado el acceso programático a la dirección MAC local del dispositivo.
[static] QList<QBluetoothHostInfo> QBluetoothLocalDevice::allDevices()
Devuelve una lista de todos los dispositivos Bluetooth locales disponibles. En macOS, solo existe el dispositivo local "predeterminado".
QList<QBluetoothAddress> QBluetoothLocalDevice::connectedDevices() const
Devuelve la lista de dispositivos conectados. Esta lista es diferente de la lista de dispositivos emparejados actualmente.
En Android y macOS, no es posible recuperar una lista de dispositivos conectados. Sólo es posible escuchar los cambios de (des)conexión. Por comodidad, esta clase monitoriza todos los eventos de conexión y desconexión desde su instanciación y devuelve la lista actual al llamar a esta función. Por lo tanto, es posible que esta función devuelva una lista vacía poco después de crear una instancia.
Véase también deviceConnected() y deviceDisconnected().
[signal] void QBluetoothLocalDevice::deviceConnected(const QBluetoothAddress &address)
Esta señal se emite cuando el dispositivo local establece una conexión con un dispositivo remoto con address.
Véase también deviceDisconnected() y connectedDevices().
[signal] void QBluetoothLocalDevice::deviceDisconnected(const QBluetoothAddress &address)
Esta señal se emite cuando el dispositivo local se desconecta de un dispositivo Bluetooth remoto con address.
Véase también deviceConnected() y connectedDevices().
[signal, since 6.2] void QBluetoothLocalDevice::errorOccurred(QBluetoothLocalDevice::Error error)
Señal emitida si hay un error excepcional durante el emparejamiento.
Esta función se introdujo en Qt 6.2.
QBluetoothLocalDevice::HostMode QBluetoothLocalDevice::hostMode() const
Devuelve el modo host actual de este dispositivo Bluetooth local. En macOS, es HostPoweredOff o HostConnectable.
Véase también setHostMode().
[signal] void QBluetoothLocalDevice::hostModeStateChanged(QBluetoothLocalDevice::HostMode state)
El state del anfitrión ha pasado a un HostMode diferente.
bool QBluetoothLocalDevice::isValid() const
Devuelve true si QBluetoothLocalDevice representa un dispositivo Bluetooth local disponible; en caso contrario, devuelve false.
Si el adaptador Bluetooth local representado por una instancia de esta clase se retira del sistema (por ejemplo, si se retira el dongle Bluetooth subyacente), esta instancia dejará de ser válida. Una instancia ya inválida de QBluetoothLocalDevice permanece inválida incluso si el mismo adaptador Bluetooth se devuelve al sistema.
Nota: A partir de Android 12 (nivel de API 31), la construcción de esta clase requiere permisos de ejecución bluetooth(BLUETOOTH_SCAN y BLUETOOTH_CONNECT). Si no se conceden los permisos, el dispositivo no será válido.
Véase también allDevices().
QString QBluetoothLocalDevice::name() const
Devuelve el nombre asignado por el usuario a este dispositivo Bluetooth.
[signal] void QBluetoothLocalDevice::pairingFinished(const QBluetoothAddress &address, QBluetoothLocalDevice::Pairing pairing)
Se ha completado el emparejamiento o desemparejamiento con address. El estado actual del emparejamiento aparece en pairing. Si la solicitud de emparejamiento no ha tenido éxito, no se emitirá esta señal. La señal errorOccurred() se emite si la solicitud de emparejamiento ha fallado. La señal sólo se emite para peticiones de emparejamiento que hayan sido solicitadas previamente llamando a requestPairing() de la instancia de objeto actual.
QBluetoothLocalDevice::Pairing QBluetoothLocalDevice::pairingStatus(const QBluetoothAddress &address) const
Devuelve el estado actual de emparejamiento bluetooth de address, si está sin emparejar, emparejado, o emparejado y autorizado.
void QBluetoothLocalDevice::powerOn()
Enciende el dispositivo después de devolverlo al estado hostMode(), si estaba apagado.
Nota: Debido a las diferentes políticas de seguridad de las plataformas soportadas, este método puede tener diferentes comportamientos en las distintas plataformas. Por ejemplo, el sistema puede pedir confirmación al usuario antes de activar o desactivar Bluetooth. En macOS no es posible activar o desactivar Bluetooth. Por favor, consulte la documentación específica de la plataforma Bluetooth para más detalles.
void QBluetoothLocalDevice::requestPairing(const QBluetoothAddress &address, QBluetoothLocalDevice::Pairing pairing)
Establezca el estado pairing con address. Los resultados son devueltos por la señal, pairingFinished().
En Android y macOS, AuthorizedPaired no es posible y tendrá el mismo comportamiento que Emparejado. En Windows, la decisión exacta del modo de emparejamiento depende del sistema operativo.
En macOS, no es posible desemparejar un dispositivo. Si se solicita Desemparejado, se emite inmediatamente pairingFinished() aunque el dispositivo permanece emparejado. Es posible solicitar el emparejamiento de un dispositivo previamente desemparejado. Además AuthorizedPaired tiene el mismo comportamiento que Paired.
Atención: la creación de un emparejamiento puede tardar minutos y puede requerir la confirmación del usuario.
void QBluetoothLocalDevice::setHostMode(QBluetoothLocalDevice::HostMode mode)
Establece el modo host de este dispositivo Bluetooth local en mode.
Algunas transiciones, como encender o apagar el dispositivo, pueden tardar algún tiempo. Por lo tanto, las llamadas posteriores sólo deben realizarse una vez que la señal hostModeStateChanged() haya concluido la solicitud anterior. Si esto se ignora, el resultado de tal serie de llamadas no estará bien definido.
Nota: Debido a las diferentes políticas de seguridad de las plataformas soportadas, este método puede tener comportamientos diferentes en las distintas plataformas. Por ejemplo, el sistema puede pedir confirmación al usuario antes de activar o desactivar Bluetooth y puede que no todos los modos de host sean compatibles. En macOS, no es posible cambiar mediante programación la dirección hostMode(). Un usuario sólo puede activar/desactivar Bluetooth en las Preferencias del Sistema. En Windows, este método debe llamarse desde el hilo de la interfaz de usuario, ya que puede requerir la confirmación del usuario. Por favor, consulte la documentación específica de la plataforma Bluetooth para más detalles.
Véase también 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.