bluez-qt
Библиотека, предоставляющая Qt-интерфейс для работы со стеком BlueZ (официальный стек Bluetooth в Linux). Она позволяет приложениям, написанным на Qt, легко интегрировать функциональность Bluetooth, такую как поиск устройств, подключение, управление сервисами и другие операции без необходимости прямого взаимодействия с низкоуровневыми D-Bus API.
Особенности
- Qt-style API с использованием сигналов и слотов для асинхронных операций;
- полная интеграция с Qt-экосистемой и моделью объектов;
- поддержка основных профилей Bluetooth (A2DP, HFP, HID и др.);
- автоматическое управление D-Bus соединениями;
- поддержка как классического Bluetooth, так и Bluetooth Low Energy (BLE).
Основные компоненты
Библиотека состоит из нескольких классов, которые соответствуют основным концепциям Bluetooth (подробнее с документацией можно ознакомиться здесь):
Управление адаптерами
Класс BluezQt::Adapter представляет Bluetooth-адаптер в системе. Через этот класс можно включать/выключать адаптер, запускать/останавливать обнаружение устройств, получать список устройств и управлять режимами работы адаптера.
Управление устройствами
Класс BluezQt::Device представляет удаленное Bluetooth-устройство. Позволяет подключаться/отключаться, получать информацию об устройстве (имя, адрес, тип) и управлять парами. Поддерживает как классические устройства, так и BLE-устройства.);
Управление сервисами и профилями
Библиотека предоставляет классы для работы с различными Bluetooth-профилями:
BluezQt::MediaPlayer— управление медиаплеерами через AVRCP;BluezQt::InputDevice— работа с устройствами ввода (мыши, клавиатуры);BluezQt::Headset— управление гарнитурами через HSP/HFP;BluezQt::Battery— получение информации о заряде батареи устройств.
Управление сервисами GATT (BLE)
Для работы с Bluetooth Low Energy предоставляются специализированные классы:
BluezQt::GattService— представление GATT-сервиса;BluezQt::GattCharacteristic— работа с GATT-характеристиками;BluezQt::GattDescriptor— управление GATT-дескрипторами.
Агенты и управление сопряжением
Класс BluezQt::Agent используется для реализации пользовательского агента, который обрабатывает запросы на сопряжение, авторизацию и другие интерактивные операции. Это позволяет приложению контролировать процесс подключения устройств.
Центральное управление
Класс BluezQt::Manager является центральной точкой для доступа ко всем адаптерам и устройствам. Через него можно получить список адаптеров, зарегистрировать агент и подписаться на системные события Bluetooth.