Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.15.2
-
None
-
-
520e7870c70c6f55f1021ab219b9f5ed751a9ca2 (qt/qtconnectivity/dev)
Description
on iOS when you use QLowEnergyController::createPeripheral(); it always create service as a 128bit UUID
For example, these lines:
_QLowEnergyCharacteristicData charDataHR;
charDataHR.setUuid(QBluetoothUuid::HeartRateMeasurement);
charDataHR.setValue(QByteArray(2, 0));
charDataHR.setProperties(QLowEnergyCharacteristic::Notify);
const QLowEnergyDescriptorData clientConfigHR(QBluetoothUuid::ClientCharacteristicConfiguration,QByteArray(2, 0));
charDataHR.addDescriptor(clientConfigHR);
serviceDataHR.setType(QLowEnergyServiceData::ServiceTypePrimary);
serviceDataHR.setUuid(QBluetoothUuid::HeartRate);
serviceDataHR.addCharacteristic(charDataHR);
leController = QLowEnergyController::createPeripheral();
serviceHR = leController->addService(serviceDataHR);_
will create the services in the photo attached (do you see the service starting from 180D? that it was the heart service). Do you see that it says unknown service? Of course in nrfconnect you can still read data, but a standard software, for example "Peloton", it can't get the heart rate values because it doesn't understand this. I know that is a Peloton issue, but we should try to manage it, forcing a 16bit UUID for knowing services.
The problem is that most of the software on iOS wants to have a 16bit UUID for know services, this makes our framework (Qt) not compatibile with the iOS ecosystem.
What do you think?