QBluetoothDeviceDiscoveryAgent Class
The QBluetoothDeviceDiscoveryAgent class discovers the Bluetooth devices nearby. More...
Header: | #include <QBluetoothDeviceDiscoveryAgent> |
qmake: | QT += bluetooth |
Since: | Qt 5.2 |
Inherits: | QObject. |
Public Types
enum | Error { NoError, PoweredOffError, InputOutputError, InvalidBluetoothAdapterError, UnknownError } |
enum | InquiryType { GeneralUnlimitedInquiry, LimitedInquiry } |
Properties
- inquiryType : QBluetoothDeviceDiscoveryAgent::InquiryType
- 1 property inherited from QObject
Public Functions
QBluetoothDeviceDiscoveryAgent(QObject * parent = 0) | |
QBluetoothDeviceDiscoveryAgent(const QBluetoothAddress & deviceAdapter, QObject * parent = 0) | |
~QBluetoothDeviceDiscoveryAgent() | |
QList<QBluetoothDeviceInfo> | discoveredDevices() const |
Error | error() const |
QString | errorString() const |
QBluetoothDeviceDiscoveryAgent::InquiryType | inquiryType() const |
bool | isActive() const |
void | setInquiryType(QBluetoothDeviceDiscoveryAgent::InquiryType type) |
- 31 public functions inherited from QObject
Public Slots
- 1 public slot inherited from QObject
Signals
void | canceled() |
void | deviceDiscovered(const QBluetoothDeviceInfo & info) |
void | error(QBluetoothDeviceDiscoveryAgent::Error error) |
void | finished() |
- 2 signals inherited from QObject
Additional Inherited Members
Detailed Description
The QBluetoothDeviceDiscoveryAgent class discovers the Bluetooth devices nearby.
To discover the nearby Bluetooth devices:
- create an instance of QBluetoothDeviceDiscoveryAgent,
- connect to either the deviceDiscovered() or finished() signals,
- and call 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() << ')'; }
To retrieve results asynchronously, connect to the deviceDiscovered() signal. To get a list of all discovered devices, call discoveredDevices() after the finished() signal.
Member Type Documentation
enum QBluetoothDeviceDiscoveryAgent::Error
Indicates all possible error conditions found during Bluetooth device discovery.
Constant | Value | Description |
---|---|---|
QBluetoothDeviceDiscoveryAgent::NoError | 0 | No error has occurred. |
QBluetoothDeviceDiscoveryAgent::PoweredOffError | 2 | The Bluetooth adaptor is powered off, power it on before doing discovery. |
QBluetoothDeviceDiscoveryAgent::InputOutputError | 1 | Writing or reading from the device resulted in an error. |
QBluetoothDeviceDiscoveryAgent::InvalidBluetoothAdapterError | 3 | The passed local adapter address does not match the physical adapter address of any local Bluetooth device. |
QBluetoothDeviceDiscoveryAgent::UnknownError | 100 | An unknown error has occurred. |
enum QBluetoothDeviceDiscoveryAgent::InquiryType
This enum describes the inquiry type used while discovering Bluetooth devices.
Constant | Value | Description |
---|---|---|
QBluetoothDeviceDiscoveryAgent::GeneralUnlimitedInquiry | 0 | A general unlimited inquiry. Discovers all visible Bluetooth devices in the local vicinity. |
QBluetoothDeviceDiscoveryAgent::LimitedInquiry | 1 | A limited inquiry discovers devices that are in limited inquiry mode. |
LimitedInquiry is not supported on all platforms. If it is requested on a platform that does not support it, GeneralUnlimitedInquiry will be used instead. Setting LimitedInquiry is useful for multi-player Bluetooth-based games that needs faster communication between the devices. The phone scans for devices in LimitedInquiry and Service Discovery is done on one or two devices to speed up the service scan. After the game has connected to the device it intended to, the device returns to GeneralUnlimitedInquiry.
Property Documentation
inquiryType : QBluetoothDeviceDiscoveryAgent::InquiryType
This property holds type of inquiry scan to be used while discovering devices.
This property affects the type of inquiry scan which is performed while discovering devices.
By default, this property is set to GeneralUnlimitedInquiry.
Not all platforms support LimitedInquiry.
Access functions:
QBluetoothDeviceDiscoveryAgent::InquiryType | inquiryType() const |
void | setInquiryType(QBluetoothDeviceDiscoveryAgent::InquiryType type) |
See also InquiryType.
Member Function Documentation
QBluetoothDeviceDiscoveryAgent::QBluetoothDeviceDiscoveryAgent(QObject * parent = 0)
Constructs a new Bluetooth device discovery agent with parent parent.
QBluetoothDeviceDiscoveryAgent::QBluetoothDeviceDiscoveryAgent(const QBluetoothAddress & deviceAdapter, QObject * parent = 0)
Constructs a new Bluetooth device discovery agent with parent.
It uses deviceAdapter for the device search. If deviceAdapter is default constructed the resulting QBluetoothDeviceDiscoveryAgent object will use the local default Bluetooth adapter.
If a deviceAdapter is specified that is not a local adapter error() will be set to InvalidBluetoothAdapterError. Therefore it is recommended to test the error flag immediately after using this constructor.
See also error().
QBluetoothDeviceDiscoveryAgent::~QBluetoothDeviceDiscoveryAgent()
Destructor for ~QBluetoothDeviceDiscoveryAgent()
[signal]
void QBluetoothDeviceDiscoveryAgent::canceled()
This signal is emitted when device discovery is aborted by a call to stop().
[signal]
void QBluetoothDeviceDiscoveryAgent::deviceDiscovered(const QBluetoothDeviceInfo & info)
This signal is emitted when the Bluetooth device described by info is discovered.
The signal is emitted as soon as the most important device information has been collected. However, as long as the finished() signal has not been emitted the information collection continues even for already discovered devices. This is particularly true for signal strength information (RSSI). If signal strength information is required it is advisable to retrieve the device information via discoveredDevices() once the discovery has finished. This will yield the most recent RSSI information.
See also QBluetoothDeviceInfo::rssi().
QList<QBluetoothDeviceInfo> QBluetoothDeviceDiscoveryAgent::discoveredDevices() const
Returns a list of all discovered Bluetooth devices.
Error QBluetoothDeviceDiscoveryAgent::error() const
Returns the last error.
[signal]
void QBluetoothDeviceDiscoveryAgent::error(QBluetoothDeviceDiscoveryAgent::Error error)
This signal is emitted when an error occurs during Bluetooth device discovery. The error parameter describes the error that occurred.
See also error() and errorString().
QString QBluetoothDeviceDiscoveryAgent::errorString() const
Returns a human-readable description of the last error.
[signal]
void QBluetoothDeviceDiscoveryAgent::finished()
This signal is emitted when Bluetooth device discovery completes. The signal is not going to be emitted if the device discovery finishes with an error.
bool QBluetoothDeviceDiscoveryAgent::isActive() const
Returns true if the agent is currently discovering Bluetooth devices, otherwise returns false.
[slot]
void QBluetoothDeviceDiscoveryAgent::start()
Starts Bluetooth device discovery, if it is not already started.
The deviceDiscovered() signal is emitted as each device is discovered. The finished() signal is emitted once device discovery is complete.
[slot]
void QBluetoothDeviceDiscoveryAgent::stop()
Stops Bluetooth device discovery. The cancel() signal is emitted once the device discovery is canceled. start() maybe called before the cancel signal is received. Once start() has been called the cancel signal from the prior discovery will be discarded.
© 2015 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.