Qt Bluetooth
API Bluetooth предоставляет подключение между устройствами, поддерживающими Bluetooth.
В настоящее время API поддерживается на следующих платформах:
| Функция API | Android | iOS | Linux (BlueZ 4.x/5.x) | macOS | WinRT | Win32 |
|---|---|---|---|---|---|---|
| Классический Bluetooth | x | x | x | x | ||
| Bluetooth LE Центральный | x | x | x | x | x | |
| Bluetooth LE Периферийный | x | x | x | x | ||
| Bluetooth LE Реклама и сканирование |
Несмотря на то, что порт Win32 пока отсутствует, бэкенд WinRT автоматически используется, если целевая платформа win32 поддерживает необходимые WinRT API. Минимальное требование — Windows 10 версии 1507 с несколько улучшенной службой обнаружения с Windows 10 версии 1607. Поэтому цели Windows 7 и 8.x исключены.
Обзор
Bluetooth — это беспроводная технология с коротким радиусом действия (менее 100 метров). Она обладает достаточно высокой скоростью передачи данных 2,1 Мбит/с, что делает её идеальной для передачи данных между устройствами. Подключение Bluetooth основано на базовом управлении устройствами, таком как сканирование устройств, сбор информации о них и обмен данными между ними.
Qt Bluetooth поддерживает разработку Bluetooth Low Energy для использования в сценариях клиент/центральный. Более подробные сведения можно найти в разделе Обзор Bluetooth Low Energy.
Новое дополнение с момента выпуска Qt Bluetooth 5.7 включает поддержку приложений Bluetooth Low Energy, выполняющих роль периферийного устройства/сервера. Этот новый API остаётся в стадии технологического предварительного просмотра.
Начало работы
Для использования библиотеки C++ в вашем приложении добавьте следующий параметр конфигурации в ваш .pro файл:
QT += bluetooth
Для использования классов модуля в вашем приложении вам нужна следующая директива импорта в ваш .qml файл:
import QtBluetooth 5.12
Связанная информация
Сборка Qt Bluetooth
Несмотря на то, что модуль может быть собран для всех платформ Qt, он не портирован на все из них. Платформы, которые не поддерживаются, такие как Windows desktop, используют фейковый или эмулирующий бэкенд, который автоматически выбирается, когда платформа не поддерживается. Эмулирующий бэкенд сообщает соответствующие сообщения об ошибках и значения, что позволяет разработчику Qt Bluetooth обнаружить во время выполнения, что текущая платформа не поддерживается. Эмулирующий бэкенд также выбирается на Linux, если заголовки разработки BlueZ не найдены во время сборки или Qt был собран без поддержки Qt D-Bus.
Использование эмулирующего бэкенда подчёркивается соответствующим предупреждением во время сборки и запуска.
Руководства
Справочник
Категории логгирования
Модуль QtBluetooth экспортирует следующие категории логгирования:
| Категория логгирования | Описание |
|---|---|
| qt.bluetooth | Включает логгирование кроссплатформенных путей кода в QtBluetooth |
| qt.bluetooth.android | Включает логгирование реализации Android |
| qt.bluetooth.bluez | Включает логгирование реализации BlueZ/Linux |
| qt.bluetooth.ios | Включает логгирование реализации iOS |
| qt.bluetooth.osx | Включает логгирование реализации macOS |
| qt.bluetooth.qml | Включает логгирование реализации QML QtBluetooth |
| qt.bluetooth.winrt | Включает логгирование реализации WinRT |
Категории логгирования могут быть использованы для включения дополнительного предупреждения и отладки вывода для QtBluetooth. Более подробная информация о логгировании доступна в QLoggingCategory. Быстрый способ включить весь QtBluetooth логгинг — добавить следующую строку в функцию main():
QLoggingCategory::setFilterRules(QStringLiteral("qt.bluetooth* = true")); Примеры
- QML
- C++
Лицензии и авторские права
Qt Bluetooth доступен по коммерческим лицензиям от The Qt Company. Кроме того, он доступен по GNU Lesser General Public License, версии 3 или GNU General Public License, версии 2. Более подробная информация доступна на странице Qt Licensing.
В Linux Qt Bluetooth использует отдельный исполняемый файл, sdpscanner, для интеграции со штатным протоколом Bluetooth Linux BlueZ. BlueZ доступен по GNU General Public License, версии 2.
Только GNU General Public License v2.0 (Это не обязывает пользовательский код быть GPL. Более подробная информация в деталях.) |
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qtbluetooth-index.html