From ffa9e1978bfd168e961bc86301f10aad0f5aa6d6 Mon Sep 17 00:00:00 2001 From: Alex Blasche Date: Tue, 13 Jun 2017 13:07:44 +0200 Subject: Android: Remove QBluetoothSocket fallback when Android SDK 23+ The private BluetoothDevice.getServiceChannel() is no longer available since Android release 6.0+ (v23+). We silently skip it on those platforms. Change-Id: Ia924f1c2fe81ccfb50b8abcfb682c350e9ce49ff Reviewed-by: Christian Stromme --- src/bluetooth/qbluetoothsocket_android.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/bluetooth/qbluetoothsocket_android.cpp b/src/bluetooth/qbluetoothsocket_android.cpp index 56d4f77b..85b69882 100644 --- a/src/bluetooth/qbluetoothsocket_android.cpp +++ b/src/bluetooth/qbluetoothsocket_android.cpp @@ -46,6 +46,7 @@ #include #include #include +#include QT_BEGIN_NAMESPACE @@ -329,7 +330,8 @@ bool QBluetoothSocketPrivate::fallBackConnect(QAndroidJniObject uuid, int channe * 3. if threaded connect succeeds call socketConnectSuccess() via signals * -> done * 4. if threaded connect fails call defaultSocketConnectFailed() via signals - * 5. call fallBackConnect() + * 5. call fallBackConnect() if Android version 22 or below + * -> Android 23+ complete failure of entire connectToService() * 6. if threaded connect on fallback channel succeeds call socketConnectSuccess() * via signals * -> done @@ -489,7 +491,9 @@ void QBluetoothSocketPrivate::defaultSocketConnectFailed( if (socket != socketObject) return; - bool success = fallBackConnect(targetUuid, FALLBACK_CHANNEL); + bool success = false; + if (QtAndroid::androidSdkVersion() <= 22) + success = fallBackConnect(targetUuid, FALLBACK_CHANNEL); if (!success) { errorString = QBluetoothSocket::tr("Connection to service failed"); socketObject = remoteDevice = QAndroidJniObject(); -- cgit v1.2.3