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 поддерживает необходимые API WinRT. Минимальное требование — 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.2
Дополнительная информация
Компиляция Qt Bluetooth
Несмотря на то, что модуль может быть скомпилирован для всех платформ Qt, он не портирован на все из них. Для платформ, не поддерживающих его, например, для настольных платформ Windows, используется фейковый или эмуляционный бэкенд, который автоматически выбирается, если платформа не поддерживается. Фейковый бэкенд выводит соответствующие сообщения об ошибках и значения, что позволяет разработчику 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, version 3, или GNU General Public License, version 2. Дополнительные сведения см. в Qt Licensing.
В Linux Qt Bluetooth использует отдельную программу, sdpscanner, для интеграции с официальным стеком протоколов Bluetooth Linux BlueZ. BlueZ доступен по GNU General Public License, version 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/archives/qt-5.11/qtbluetooth-index.html