Details
-
Bug
-
Resolution: Duplicate
-
Not Evaluated
-
None
-
6.3.2
-
None
-
Qt: Static build (downloaded binaries with Qt Maintenance tool)
Kit: Desktop Qt 6.3.1/6.3.2 MSVC2019 64bit
Compiler: Microsoft Visual C++ Compiler 17.2.32602.215 (amd64)
OS: Windows 11 Home 10.0.22000
Description
This ecaxt same code in a simple main.cpp:
#include <QCoreApplication>
#include <QtBluetooth/QBluetoothServiceDiscoveryAgent>
#include <QtBluetooth/QBluetoothLocalDevice>
int main(int argc, char *argv[]) {
QCoreApplication app(argc, argv);
qDebug() << "QT runtime version: " << qVersion() << ", compile version: " << QT_VERSION_STR;
QBluetoothServiceDiscoveryAgent *discoveryAgent = new QBluetoothServiceDiscoveryAgent();
QObject::connect(discoveryAgent, &QBluetoothServiceDiscoveryAgent::serviceDiscovered, [](const QBluetoothServiceInfo& serviceInfo) { qInfo() << "Found service: " << serviceInfo.serviceName() << " " << serviceInfo.serviceUuid(); });
QObject::connect(discoveryAgent, &QBluetoothServiceDiscoveryAgent::errorOccurred, [](QBluetoothServiceDiscoveryAgent::Error error) { qWarning() << "Discovery agent error: " << error; });
QObject::connect(discoveryAgent, &QBluetoothServiceDiscoveryAgent::finished, []() { qWarning() << "Discovery agent finished"; });
qInfo() << "Starting bluetooth service discovery agent"; discoveryAgent->start(QBluetoothServiceDiscoveryAgent::FullDiscovery);
return app.exec();
}
Gives the following output when using Qt 6.3.1:
QT runtime version: 6.3.1 , compile version: 6.3.1
Starting bluetooth service discovery agent
Found service: "MAP MAS-iOS" "{00001132-0000-1000-8000-00805f9b34fb}"
Found service: "Wireless iAP v2" "{02030302-1d19-415f-86f2-22a2106a0a77}"
Found service: "Wireless iAP" "{00000000-deca-fade-deca-deafdecacafe}"
Found service: "Phonebook" "{0000112f-0000-1000-8000-00805f9b34fb}"
Found service: "Handsfree Gateway" "{0000111f-0000-1000-8000-00805f9b34fb}"
Discovery agent finished
But after switching to Qt 6.3.2 runtime, getting this output with errors:
QT runtime version: 6.3.2 , compile version: 6.3.1
Starting bluetooth service discovery agent
QMetaMethod::invoke: Unable to handle unregistered datatype 'std::shared_ptr<QWinRTBluetoothDeviceDiscoveryWorker>'
QMetaMethod::invoke: Unable to handle unregistered datatype 'std::shared_ptr<QWinRTBluetoothDeviceDiscoveryWorker>'
QMetaMethod::invoke: Unable to handle unregistered datatype 'std::shared_ptr<QWinRTBluetoothDeviceDiscoveryWorker>'
No devices are discovered and the "finished"-signal is not emitted.
Same output also when it is both compiled and run with 6.3.2:
QT runtime version: 6.3.2 , compile version: 6.3.2
Starting bluetooth service discovery agent
QMetaMethod::invoke: Unable to handle unregistered datatype 'std::shared_ptr<QWinRTBluetoothDeviceDiscoveryWorker>'
QMetaMethod::invoke: Unable to handle unregistered datatype 'std::shared_ptr<QWinRTBluetoothDeviceDiscoveryWorker>'
QMetaMethod::invoke: Unable to handle unregistered datatype 'std::shared_ptr<QWinRTBluetoothDeviceDiscoveryWorker>'
However, runtime 6.3.1 compiled with 6.3.2 does work as expected again:
QT runtime version: 6.3.1 , compile version: 6.3.2
Starting bluetooth service discovery agent
Found service: "MAP MAS-iOS" "{00001132-0000-1000-8000-00805f9b34fb}"
Found service: "Wireless iAP v2" "{02030302-1d19-415f-86f2-22a2106a0a77}"
Found service: "Wireless iAP" "{00000000-deca-fade-deca-deafdecacafe}"
Found service: "Phonebook" "{0000112f-0000-1000-8000-00805f9b34fb}"
Found service: "Handsfree Gateway" "{0000111f-0000-1000-8000-00805f9b34fb}"
Discovery agent finished
In conclusion, the Qt 6.3.2 runtime stops QBluetoothServiceDiscoveryAgent from working for me.