diff options
-rw-r--r-- | core/qtserialbluetooth.cpp | 19 | ||||
-rw-r--r-- | mobile-widgets/qmlmanager.cpp | 4 |
2 files changed, 23 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(); diff --git a/mobile-widgets/qmlmanager.cpp b/mobile-widgets/qmlmanager.cpp index 491c16825..47786c0be 100644 --- a/mobile-widgets/qmlmanager.cpp +++ b/mobile-widgets/qmlmanager.cpp @@ -204,11 +204,15 @@ void QMLManager::mergeLocalRepo() } #if BT_SUPPORT + +extern void addBtUuid(QBluetoothUuid uuid); + void QMLManager::btDeviceDiscovered(const QBluetoothDeviceInfo &device) { QString newDevice = device.name(); QList<QBluetoothUuid> serviceUuids = device.serviceUuids(); foreach (QBluetoothUuid id, serviceUuids) { + addBtUuid(id); qDebug() << id.toByteArray(); } appendTextToLog("Found new device " + newDevice + " (" + device.address().toString() + ")"); |