En esta página

Qt Bluetooth

La API Bluetooth proporciona conectividad entre dispositivos habilitados para Bluetooth.

Actualmente, la API es compatible con las siguientes plataformas:

Función de la APIAndroidiOSLinux (BlueZ 5.x)macOSWindows
Bluetooth clásicoxxxx
Bluetooth LE Centralxxxxx
Periférico Bluetooth LExxxx

Información general

Bluetooth es una tecnología inalámbrica de corto alcance (menos de 100 metros). Tiene una velocidad de transferencia de datos de 2,1 Mbps, lo que la hace ideal para transferir datos entre dispositivos. La conectividad Bluetooth se basa en la gestión básica de dispositivos, como la búsqueda de dispositivos, la recopilación de información sobre ellos y el intercambio de datos entre ellos.

Qt Bluetooth admite el desarrollo de Bluetooth Low Energy para casos de uso cliente/función central. Encontrará más información en la sección Descripción general de Bluetooth Low Energy.

Uso del módulo

Para utilizar la API C++ de un módulo Qt es necesario enlazar con la biblioteca del módulo, ya sea directamente o a través de otras dependencias. Varias herramientas de compilación tienen soporte dedicado para esto, incluyendo CMake y qmake.

Construcción con CMake

Utilice el comando find_package() para localizar el componente del módulo necesario en el paquete Qt6:

find_package(Qt6 REQUIRED COMPONENTS Bluetooth)
target_link_libraries(mytarget PRIVATE Qt6::Bluetooth)

Para obtener más información, consulta la descripción general de la compilación con CMake.

Compilación con qmake

Para configurar el módulo para la construcción con qmake, agregue el módulo como valor de la variable QT en el archivo .pro del proyecto:

QT += bluetooth

Permisos

A partir de Qt 6.6, el módulo Qt Bluetooth utiliza la nueva API QPermission para gestionar los permisos de Bluetooth. Esto significa que Qt ya no consulta estos permisos, por lo que debe hacerse directamente desde la aplicación cliente.

Consulte la página Permisos de la aplicación para ver un ejemplo de cómo integrar la nueva API QPermission en la aplicación.

Creación de Qt Bluetooth

Aunque el módulo puede ser construido para todas las plataformas Qt, el módulo no es portado a todas ellas. Las plataformas no soportadas emplean un backend ficticio que se selecciona automáticamente cuando la plataforma no está soportada. El backend ficticio informa de los mensajes y valores de error apropiados, lo que permite detectar en tiempo de ejecución que la plataforma actual no es compatible. El backend ficticio también se selecciona en Linux si no se encuentran las cabeceras de desarrollo BlueZ durante el tiempo de compilación o si Qt se compiló sin soporte para Qt D-Bus.

El uso del backend ficticio se resalta mediante una advertencia apropiada durante la compilación y la ejecución.

Específico para Linux

Desde Qt 6.5 el soporte de periféricos Linux tiene dos alternativas de backend: BlueZ DBus y Bluetooth Kernel API. El backend DBus es el backend por defecto desde Qt 6.7.

BlueZ DBus es el nuevo stack de BlueZ y posiblemente el sucesor del antiguo Kernel API. Es un poco más limitado en términos de características, pero en un uso típico esto no debería importar. Un beneficio notable de usar el backend DBus es que el proceso de usuario ya no necesita tener la capacidad CAP_NET_ADMIN (por ejemplo ejecutándose como usuario root ).

El backend DBus requiere BlueZ versión 5.56 o superior, y que proporcione las API DBus necesarias. Si no se cumplen estos requisitos, Qt vuelve automáticamente al backend Bluetooth Kernel API.

El kernel backend más antiguo también puede seleccionarse manualmente configurando la variable de entorno QT_BLUETOOTH_USE_KERNEL_PERIPHERAL.

Específico para macOS

La API Bluetooth en macOS requiere un cierto tipo de despachador de eventos que en Qt causa una dependencia a QGuiApplication. Sin embargo, se puede establecer la variable de entorno QT_EVENT_DISPATCHER_CORE_FOUNDATION=1 para eludir este problema.

Las aplicaciones que no utilicen Bluetooth clásico encontrarán disponible un subconjunto de QtBluetooth, ya que CoreBluetooth (Bluetooth LE) no requiere QApplication o QGuiApplication.

Artículos y guías

Referencia

Categorías de registro

El módulo QtBluetooth exporta las siguientes logging categories:

Categoría de registroDescripción
qt.bluetoothPermite el registro de la ruta de código entre plataformas en QtBluetooth
qt.bluetooth.androidPermite el registro de la implementación de Android
qt.bluetooth.bluezPermite el registro de la implementación BLuez/Linux
qt.bluetooth.iosPermite el registro de la implementación de iOS
qt.bluetooth.osxPermite el registro de la implementación de macOS
qt.bluetooth.windowsActiva el registro de la implementación de Windows

Las categorías de registro habilitan advertencias y depuración adicionales para QtBluetooth. Encontrará información más detallada sobre el registro en QLoggingCategory. Una forma rápida de activar todos los registros de QtBluetooth es añadir la siguiente línea a la función main():

QLoggingCategory::setFilterRules(QStringLiteral("qt.bluetooth* = true"));

Ejemplos

Evolución de Módulos

Cambios en Qt Bluetooth enumera los cambios importantes en la API del módulo y la funcionalidad que se hicieron para la serie Qt 6 de Qt.

Licencias y Atribuciones

Qt Bluetooth está disponible bajo licencias comerciales de The Qt Company. Además, está disponible bajo la Licencia Pública General Reducida de GNU, versión 3, o la Licencia Pública General de GNU, versión 2. Consulte Licencias de Qt para obtener más información.

En Linux, Qt Bluetooth utiliza un ejecutable independiente, sdpscanner, para integrarse con la pila de protocolos bluetooth BlueZ oficial de Linux. BlueZ está disponible bajo la Licencia Pública General de GNU, versión 2.

BlueZ

GNU General Public License v2.0 only (Esto no obliga al código de usuario a ser GPL'ed. Para más información ver detalles).

© 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.