Spec-Zone.ru › Qt 5.6

Класс QBluetoothDeviceDiscoveryAgent

Класс QBluetoothDeviceDiscoveryAgent обнаруживает устройства Bluetooth поблизости. Подробнее...

Заголовок: #include <QBluetoothDeviceDiscoveryAgent>
qmake: QT += bluetooth
С момента: Qt 5.2
Наследует: QObject
  • Список всех членов, включая унаследованные

Общедоступные типы

Перечисление Ошибка { НетОшибок, ОтключениеПитания, ОшибкаВводаВывода, ОшибкаAdapterBluetooth, ОшибкаНеподдерживаемаяПлатформа, НеизвестнаяОшибка }
Перечисление ТипЗапроса { ОбщийНеограниченныйЗапрос, ОграниченныйЗапрос }

Свойства

  • inquiryType : QBluetoothDeviceDiscoveryAgent::InquiryType
  • 1 свойство унаследовано от QObject

Общедоступные функции

QBluetoothDeviceDiscoveryAgent(QObject *parent = Q_NULLPTR)
QBluetoothDeviceDiscoveryAgent(const QBluetoothAddress &deviceAdapter, QObject *parent = Q_NULLPTR)
~QBluetoothDeviceDiscoveryAgent()
QList<QBluetoothDeviceInfo> discoveredDevices() const
Ошибка error() const
QString errorString() const
QBluetoothDeviceDiscoveryAgent::InquiryType inquiryType() const
bool isActive() const
void setInquiryType(QBluetoothDeviceDiscoveryAgent::InquiryType type)
  • 31 общедоступная функция унаследована от QObject

Общедоступные слоты

void start()
void stop()
  • 1 общедоступный слот унаследован от QObject

Сигналы

void canceled()
void deviceDiscovered(const QBluetoothDeviceInfo &info)
void error(QBluetoothDeviceDiscoveryAgent::Error error)
void finished()
  • 2 сигнала унаследованы от QObject

Дополнительные унаследованные члены

  • 11 статических общедоступных членов унаследованы от QObject
  • 9 защищенных функций унаследованы от QObject

Подробное описание

Класс QBluetoothDeviceDiscoveryAgent обнаруживает устройства Bluetooth поблизости.

Чтобы обнаружить устройства Bluetooth поблизости:

  • создайте экземпляр QBluetoothDeviceDiscoveryAgent,
  • подключитесь к сигналам deviceDiscovered() или finished(),
  • и вызовите start().
void MyClass::startDeviceDiscovery()
{

    // Create a discovery agent and connect to its signals
    QBluetoothDeviceDiscoveryAgent *discoveryAgent = new QBluetoothDeviceDiscoveryAgent(this);
    connect(discoveryAgent, SIGNAL(deviceDiscovered(QBluetoothDeviceInfo)),
            this, SLOT(deviceDiscovered(QBluetoothDeviceInfo)));

    // Start a discovery
    discoveryAgent->start();

    //...
}

// In your local slot, read information about the found devices
void MyClass::deviceDiscovered(const QBluetoothDeviceInfo &device)
{
    qDebug() << "Found new device:" << device.name() << '(' << device.address().toString() << ')';
}

Чтобы получить результаты асинхронно, подключитесь к сигналу deviceDiscovered(). Чтобы получить список всех обнаруженных устройств, вызовите discoveredDevices() после сигнала finished().

Этот класс может использоваться для обнаружения устройств Bluetooth Classic и Low Energy. Тип устройства можно определить с помощью атрибута QBluetoothDeviceInfo::coreConfigurations(). В большинстве случаев список, возвращаемый discoveredDevices(), содержит оба типа устройств. Однако не все платформы могут обнаруживать оба типа устройств. На платформах с этим ограничением (например, iOS поддерживает только обнаружение Low Energy), процесс обнаружения ограничит поиск типом, который поддерживается.

Примечание: Начиная с Android 6.0, для обнаружения устройств требуется разрешение ACCESS_COARSE_LOCATION.

Документация типов членов

Перечисление QBluetoothDeviceDiscoveryAgent::Ошибка

Указывает все возможные условия возникновения ошибок при обнаружении устройств Bluetooth.

Константа Значение Описание
QBluetoothDeviceDiscoveryAgent::NoError 0 Ошибка не произошла.
QBluetoothDeviceDiscoveryAgent::PoweredOffError 2 Устройство Bluetooth выключено, включите его перед выполнением обнаружения.
QBluetoothDeviceDiscoveryAgent::InputOutputError 1 Запись или чтение из устройства привело к ошибке.
QBluetoothDeviceDiscoveryAgent::InvalidBluetoothAdapterError 3 Адрес передаваемого локального адаптера не соответствует физическому адресу адаптера любого локального устройства Bluetooth.
QBluetoothDeviceDiscoveryAgent::UnsupportedPlatformError 4 Обнаружение устройств невозможно или не реализовано на текущей платформе. Ошибка устанавливается в ответ на вызов start(). Примером таких случаев являются версии iOS ниже 5.0, которые вообще не поддерживают поиск устройств Bluetooth. Это значение было добавлено в Qt 5.5.
QBluetoothDeviceDiscoveryAgent::UnknownError 100 Произошла неизвестная ошибка.

Перечисление QBluetoothDeviceDiscoveryAgent::ТипЗапроса

Это перечисление описывает тип запроса, используемый при обнаружении устройств Bluetooth.

Константа Значение Описание
QBluetoothDeviceDiscoveryAgent::GeneralUnlimitedInquiry 0 Общий неограниченный запрос. Обнаруживает все видимые устройства Bluetooth в локальном радиусе.
QBluetoothDeviceDiscoveryAgent::LimitedInquiry 1 Ограниченный запрос обнаруживает устройства, которые находятся в режиме ограниченного запроса.

LimitedInquiry не поддерживается на всех платформах. Если он запрошен на платформе, которая его не поддерживает, будет использоваться GeneralUnlimitedInquiry. Установка LimitedInquiry полезна для многопользовательских игр на основе Bluetooth, которым требуется более быстрое общение между устройствами. Телефон сканирует устройства в режиме LimitedInquiry, а поиск служб выполняется на одном или двух устройствах для ускорения поиска служб. После того, как игра подключится к нужному устройству, устройство возвращается к GeneralUnlimitedInquiry.

Документация по свойству

inquiryType : QBluetoothDeviceDiscoveryAgent::InquiryType

тип сканирования запроса, используемого при обнаружении устройств

Это свойство влияет на тип сканирования запроса, который выполняется при обнаружении устройств.

По умолчанию это свойство установлено в GeneralUnlimitedInquiry.

Не все платформы поддерживают LimitedInquiry.

Функции доступа:

QBluetoothDeviceDiscoveryAgent::InquiryType inquiryType() const
void setInquiryType(QBluetoothDeviceDiscoveryAgent::InquiryType type)

См. также InquiryType.

Документация по членам-функциям

QBluetoothDeviceDiscoveryAgent::QBluetoothDeviceDiscoveryAgent(QObject *parent = Q_NULLPTR)

Создаёт новый агент обнаружения устройств Bluetooth с родителем parent.

QBluetoothDeviceDiscoveryAgent::QBluetoothDeviceDiscoveryAgent(const QBluetoothAddress &deviceAdapter, QObject *parent = Q_NULLPTR)

Создаёт новый агент обнаружения устройств Bluetooth с parent.

Использует deviceAdapter для поиска устройства. Если deviceAdapter создан по умолчанию, созданный объект QBluetoothDeviceDiscoveryAgent будет использовать локальный адаптер Bluetooth по умолчанию.

Если заданный deviceAdapter не является локальным адаптером, error() будет установлено в InvalidBluetoothAdapterError. Поэтому рекомендуется немедленно проверить флаг ошибки после использования этого конструктора.

См. также error().

QBluetoothDeviceDiscoveryAgent::~QBluetoothDeviceDiscoveryAgent()

Деструктор для ~QBluetoothDeviceDiscoveryAgent()

[signal] void QBluetoothDeviceDiscoveryAgent::canceled()

Этот сигнал подаётся, когда обнаружение устройств прерывается вызовом stop().

[signal] void QBluetoothDeviceDiscoveryAgent::deviceDiscovered(const QBluetoothDeviceInfo &info)

Этот сигнал подаётся, когда обнаружено устройство Bluetooth, описанное в info.

Сигнал подаётся, как только была собрана самая важная информация о устройстве. Однако, пока не подан сигнал finished(), сбор информации продолжается даже для уже обнаруженных устройств. Это особенно верно для информации о уровне сигнала (RSSI). Если требуется информация о уровне сигнала, рекомендуется получить информацию о устройстве через discoveredDevices() после завершения обнаружения. Это позволит получить самую последнюю информацию RSSI.

См. также QBluetoothDeviceInfo::rssi().

QList<QBluetoothDeviceInfo> QBluetoothDeviceDiscoveryAgent::discoveredDevices() const

Возвращает список всех обнаруженных устройств Bluetooth.

Error QBluetoothDeviceDiscoveryAgent::error() const

Возвращает последнюю ошибку.

[signal] void QBluetoothDeviceDiscoveryAgent::error(QBluetoothDeviceDiscoveryAgent::Error error)

Этот сигнал подаётся, когда во время обнаружения устройств Bluetooth возникает ошибка error. Параметр error описывает произошедшую ошибку.

Примечание: Сигнал error перегружен в этом классе. Чтобы подключиться к нему с помощью синтаксиса указателя на функцию, необходимо указать тип сигнала в статическом преобразовании, как показано в этом примере:

connect(bluetoothDeviceDiscoveryAgent, static_cast<void(QBluetoothDeviceDiscoveryAgent::*)(QBluetoothDeviceDiscoveryAgent::Error)>(&QBluetoothDeviceDiscoveryAgent::error),
    [=](QBluetoothDeviceDiscoveryAgent::Error error){ /* ... */ });

См. также error() и errorString().

QString QBluetoothDeviceDiscoveryAgent::errorString() const

Возвращает удобочитаемое описание последней ошибки.

[signal] void QBluetoothDeviceDiscoveryAgent::finished()

Этот сигнал подаётся, когда обнаружение устройств Bluetooth завершается. Сигнал не будет подан, если обнаружение устройств завершилось с ошибкой.

bool QBluetoothDeviceDiscoveryAgent::isActive() const

Возвращает true, если агент в настоящее время обнаруживает устройства Bluetooth, в противном случае возвращает false.

[slot] void QBluetoothDeviceDiscoveryAgent::start()

Запускает обнаружение устройств Bluetooth, если оно ещё не запущено.

Сигнал deviceDiscovered() подаётся по мере обнаружения каждого устройства. Сигнал finished() подаётся после завершения обнаружения устройств.

[slot] void QBluetoothDeviceDiscoveryAgent::stop()

Останавливает обнаружение устройств Bluetooth. Сигнал cancel() подаётся после отмены обнаружения устройств. start() может быть вызван до получения сигнала cancel. После того, как start() был вызван, сигнал cancel от предыдущего обнаружения будет отброшен.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qbluetoothdevicediscoveryagent.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API