[Interest] QtBluetooth Low Energy: How to find my peripheral?

Alexander Blasche alexander.blasche at qt.io
Thu Oct 13 16:43:43 CEST 2016


In general the device search does add the found service UUIDs to the QBluetoothDeviceInfo. The relevant code section that extracts the service UUIDs can be found under:

http://code.qt.io/cgit/qt/qtconnectivity.git/tree/src/bluetooth/android/devicediscoverybroadcastreceiver.cpp?h=5.6.2#n469

Have you tried other Android devices? Maybe your device does not extract this type of information properly. At least on my test hardware the above lines produce the UUIDs. I suggest to debug around this area of code.

--
Alex

________________________________________
From: Prashant Vaibhav <prashant.vaibhav at tobyrich.com>
Sent: Wednesday, 12 October 2016 4:34:56 PM
To: Alexander Blasche
Cc: interest at qt-project.org
Subject: Re: [Interest] QtBluetooth Low Energy: How to find my peripheral?

Oops, pasted wrong bug report link.
I meant this: https://bugreports.qt.io/browse/QTBUG-46008


Kind Regards,
Prashant Vaibhav



On 12 Oct 2016, at 16:34, Prashant Vaibhav <prashant.vaibhav at tobyrich.com<mailto:prashant.vaibhav at tobyrich.com>> wrote:

Hi Alexander,

Comments inline below. Thanks.

Kind Regards,
Prashant Vaibhav



On 12 Oct 2016, at 15:45, Alexander Blasche <alexander.blasche at qt.io<mailto:alexander.blasche at qt.io>> wrote:



-----Original Message-----
From: Interest [mailto:interest-bounces+alexander.blasche=qt.io<http://qt.io/>@qt-
project.org<http://project.org/>] On Behalf Of Prashant Vaibhav
Sent: Wednesday, 12 October 2016 13:45
To: interest at qt-project.org<mailto:interest at qt-project.org>
Subject: [Interest] QtBluetooth Low Energy: How to find my peripheral?

Hi all,

I’m using QtBluetooth low energy API on Qt 5.7 / Android 5/6. Targeting API level
19 (android 4.4+).

What are you using Qt 5.6 or 5.7?

I’m using Qt 5.7.0.


My problem is that I cannot find a way to decide which of the BLE devices
returned during scan is mine:

- The advertising data is inaccessible (no API).
- The QBluetoothDeviceInfo.serviceUuids() function returns nothing (apparently
it’s for classic bluetooth)
- The QBluetoothDeviceInfo.name() function is null (empty string)

So the only information I have is the rssi (QBluetoothDeviceInfo.rssi()), which is
not enough to figure out the scanned device is ours. Furthermore, I cannot show
a list to the user to pick the device manually, since all it will have is the signal level
(and perhaps MAC address).


I believe you may experience https://bugreports.qt.io/browse/QTBUG-54867.

It was fixed in Qt 5.6.2 and 5.7.1. Alternatively you may cherry-pick the referenced patches into your Qt build.

Thanks for the link, I checked and it doesn’t seem relevant to my issue. Our BLE device doesn’t have major/minor numbers in its advertising packet. It does have the primary service UUID (128 bit) which we are using to identify it on iOS (native code).

Perhaps you meant https://bugreports.qt.io/browse/QTBUG-54867 ?


--
Alex




More information about the Interest mailing list