I can only speculate as to the nature of the failure. Bluetooth on Android is 
mostly multi threaded already as the main processing is done in Android main 
and custom threads already. The resulats are then handed to the thread that 
owns QBluetoothServiceDiscoveryAgent. From this perspective, it should not 
really be necessary to shift the Qt classes into another thread.

In any case, during service discovery QBluetoothServiceInfo is only used to 
tell the user the result of the discovery (aka QBluetoothServiceDiscoveryAgent 
emits such an object as part of the serviceDiscovered() signal). There is not a 
single internal QObject::connect that passes QBluetoothServiceInfo as arguments 
around. Therefore I must conclude that the problem is in your code. The fact 
the discovery is not working may well be related to how you process the 
serviceDiscovered() signal in your application which may fail because of the 
missing metatype registration.

I suggest you enable Bluetooth QLoggingCategory (see official examples for 
details) and check whether the internal infra really does not find anything. If 
that works then you have to find the reason in how you interact with the class.

--
Alex

________________________________________
From: Interest <interest-bounces+alexander.blasche=qt...@qt-project.org> on 
behalf of maitai <mai...@virtual-winds.org>
Sent: Thursday, 26 July 2018 9:08:00 AM
To: Interest@qt-project.org
Subject: [Interest] Android bluetooth in a thread

Hello,

Another question about QBluetooth, this time on Android:

If I run a bluetooth "client" class in a thread, discovery fails and I
have this weird message in the console:

QObject::connect: Cannot queue arguments of type 'QBluetoothServiceInfo'
(Make sure 'QBluetoothServiceInfo' is registered using
qRegisterMetaType().)

If I run the exact same class in the main thread, no such message and
everything works OK.

I know that on Mac OS bluetooth must be run in the main thread. Is it
the same for Android? What about other OS (Linux, Windows, iOS) ?

Thanks
Philippe.
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to