summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@qt.io>2017-06-13 15:39:15 +0200
committerAlex Blasche <alexander.blasche@qt.io>2017-06-14 08:09:32 +0000
commitabeea470e348cb4e87f1e24492e263f7ac7d8cce (patch)
treefc92ae0ef21f976da8c30ec1d5b56c4340cba5f4
parent9834dc9082f7442549bb217262c476a4dd20e1ec (diff)
Adjust bttestui to Android's SDP discovery problems
This affects only Android version 6.0.1 or later. At this stage there is no available fix yet. Task-number: QTBUG-61392 Change-Id: Ib63a1974fd0a0533624608df0ebd4c4202a80658 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
-rw-r--r--tests/bttestui/btlocaldevice.cpp16
-rw-r--r--tests/bttestui/bttestui.pro2
2 files changed, 17 insertions, 1 deletions
diff --git a/tests/bttestui/btlocaldevice.cpp b/tests/bttestui/btlocaldevice.cpp
index 5b84794c..4410a66d 100644
--- a/tests/bttestui/btlocaldevice.cpp
+++ b/tests/bttestui/btlocaldevice.cpp
@@ -29,12 +29,18 @@
#include "btlocaldevice.h"
#include <QDebug>
#include <QTimer>
+#ifdef Q_OS_ANDROID
+#include <QtAndroidExtras/QtAndroid>
+#endif
#include <QtBluetooth/QBluetoothServiceInfo>
#define BTCHAT_DEVICE_ADDR "00:15:83:38:17:C3"
//same uuid as examples/bluetooth/btchat
+//the reverse UUID is only used on Android to counter
+//https://issuetracker.google.com/issues/37076498 (tracked via QTBUG-61392)
#define TEST_SERVICE_UUID "e8e10f95-1a70-4b27-9ccf-02010264e9c8"
+#define TEST_REVERSE_SERVICE_UUID "c8e96402-0102-cf9c-274b-701a950fe1e8"
#define SOCKET_PROTOCOL QBluetoothServiceInfo::RfcommProtocol
//#define SOCKET_PROTOCOL QBluetoothServiceInfo::L2capProtocol
@@ -328,7 +334,15 @@ void BtLocalDevice::serviceDiscovered(const QBluetoothServiceInfo &info)
qDebug() << "$$ Found new service" << info.device().address().toString()
<< info.serviceUuid() << info.serviceName() << info.serviceDescription() << classIds;
- if (info.serviceUuid() == QBluetoothUuid(QString(TEST_SERVICE_UUID))
+ bool matchingService =
+ (info.serviceUuid() == QBluetoothUuid(QString(TEST_SERVICE_UUID)));
+#ifdef Q_OS_ANDROID
+ if (QtAndroid::androidSdkVersion() >= 23) //bug introduced by Android 6.0.1
+ matchingService = matchingService
+ || (info.serviceUuid() == QBluetoothUuid(QString(TEST_REVERSE_SERVICE_UUID)));
+#endif
+
+ if (matchingService
|| info.serviceClassUuids().contains(QBluetoothUuid(QString(TEST_SERVICE_UUID))))
{
//This is here to detect the test server for SPP testing later on
diff --git a/tests/bttestui/bttestui.pro b/tests/bttestui/bttestui.pro
index 06248691..ce582e66 100644
--- a/tests/bttestui/bttestui.pro
+++ b/tests/bttestui/bttestui.pro
@@ -6,6 +6,8 @@ SOURCES += main.cpp \
QT += quick bluetooth
+android: QT += androidextras
+
OTHER_FILES += main.qml \
Button.qml