aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/qtserialbluetooth.cpp19
-rw-r--r--mobile-widgets/qmlmanager.cpp4
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() + ")");