diff options
-rw-r--r-- | src/bluetooth/android/servicediscoverybroadcastreceiver.cpp | 6 | ||||
-rw-r--r-- | src/bluetooth/qbluetoothservicediscoveryagent_android.cpp | 6 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/bluetooth/android/servicediscoverybroadcastreceiver.cpp b/src/bluetooth/android/servicediscoverybroadcastreceiver.cpp index 0a3f97f9..87564ce6 100644 --- a/src/bluetooth/android/servicediscoverybroadcastreceiver.cpp +++ b/src/bluetooth/android/servicediscoverybroadcastreceiver.cpp @@ -76,8 +76,10 @@ void ServiceDiscoveryBroadcastReceiver::onReceive(JNIEnv *env, jobject context, "getParcelableArrayExtra", "(Ljava/lang/String;)[Landroid/os/Parcelable;", keyExtra.object<jstring>()); - if (!parcelableUuids.isValid()) + if (!parcelableUuids.isValid()) { + emit uuidFetchFinished(QBluetoothAddress(), QList<QBluetoothUuid>()); return; + } const QList<QBluetoothUuid> result = ServiceDiscoveryBroadcastReceiver::convertParcelableArray(parcelableUuids); keyExtra = valueForStaticField(JavaNames::BluetoothDevice, JavaNames::ExtraDevice); @@ -89,6 +91,8 @@ void ServiceDiscoveryBroadcastReceiver::onReceive(JNIEnv *env, jobject context, if (bluetoothDevice.isValid()) { address = QBluetoothAddress(bluetoothDevice.callObjectMethod<jstring>("getAddress").toString()); emit uuidFetchFinished(address, result); + } else { + emit uuidFetchFinished(QBluetoothAddress(), QList<QBluetoothUuid>()); } } } diff --git a/src/bluetooth/qbluetoothservicediscoveryagent_android.cpp b/src/bluetooth/qbluetoothservicediscoveryagent_android.cpp index 4a8b62e7..2643d7a9 100644 --- a/src/bluetooth/qbluetoothservicediscoveryagent_android.cpp +++ b/src/bluetooth/qbluetoothservicediscoveryagent_android.cpp @@ -246,6 +246,12 @@ void QBluetoothServiceDiscoveryAgentPrivate::_q_processFetchedUuids( if (discoveredDevices.count() == 0) return; + //could not find any service for the current address/device -> go to next one + if (address.isNull() || uuids.isEmpty()) { + _q_serviceDiscoveryFinished(); + return; + } + if (QT_BT_ANDROID().isDebugEnabled()) { qCDebug(QT_BT_ANDROID) << "Found UUID for" << address.toString() << "\ncount: " << uuids.count(); |