diff options
Diffstat (limited to 'core/qtserialbluetooth.cpp')
-rw-r--r-- | core/qtserialbluetooth.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/core/qtserialbluetooth.cpp b/core/qtserialbluetooth.cpp index b8c57204e..e14d8e9f9 100644 --- a/core/qtserialbluetooth.cpp +++ b/core/qtserialbluetooth.cpp @@ -19,6 +19,18 @@ #include <libdivecomputer/custom_serial.h> +QList<QBluetoothUuid> registeredUuids; + +static QBluetoothUuid getBtUuid() +{ + return registeredUuids.first(); +} + +void addBtUuid(QBluetoothUuid uuid) +{ + registeredUuids << uuid; +} + extern "C" { typedef struct qt_serial_t { /* @@ -32,6 +44,7 @@ typedef struct qt_serial_t { long timeout; } qt_serial_t; + static dc_status_t qt_serial_open(void **userdata, const char* devaddr) { // Allocate memory. @@ -133,7 +146,13 @@ static dc_status_t qt_serial_open(void **userdata, const char* devaddr) #elif defined(Q_OS_ANDROID) || (QT_VERSION >= 0x050500 && defined(Q_OS_MAC)) // Try to connect to the device using the uuid of the Serial Port Profile service QBluetoothAddress remoteDeviceAddress(devaddr); +#if defined(Q_OS_ANDROID) + QBluetoothUuid uuid = getBtUuid(); + qDebug() << "connecting to Uuid" << uuid; + serial_port->socket->connectToService(remoteDeviceAddress, uuid, QIODevice::ReadWrite | QIODevice::Unbuffered); +#else serial_port->socket->connectToService(remoteDeviceAddress, 1, QIODevice::ReadWrite | QIODevice::Unbuffered); +#endif timer.start(msec); loop.exec(); |