diff options
author | Alex Blasche <alexander.blasche@qt.io> | 2017-06-13 13:07:44 +0200 |
---|---|---|
committer | Alex Blasche <alexander.blasche@qt.io> | 2017-06-16 07:35:12 +0000 |
commit | ffa9e1978bfd168e961bc86301f10aad0f5aa6d6 (patch) | |
tree | 2e06952384f9755f13d96ec39afbd326115e7301 | |
parent | dcf4f947455afae2d07a2cec02990581523afd3e (diff) | |
download | qtconnectivity-ffa9e1978bfd168e961bc86301f10aad0f5aa6d6.tar.gz |
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 <christian.stromme@qt.io>
-rw-r--r-- | src/bluetooth/qbluetoothsocket_android.cpp | 8 |
1 files 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 <QtCore/QTime> #include <QtCore/private/qjni_p.h> #include <QtAndroidExtras/QAndroidJniEnvironment> +#include <QtAndroid> 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(); |