diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/bluetooth/android/jni_android.cpp | 3 | ||||
-rw-r--r-- | src/bluetooth/qbluetoothdevicediscoveryagent_android.cpp | 3 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/bluetooth/android/jni_android.cpp b/src/bluetooth/android/jni_android.cpp index 176416c8..0688c869 100644 --- a/src/bluetooth/android/jni_android.cpp +++ b/src/bluetooth/android/jni_android.cpp @@ -193,6 +193,9 @@ static void QtBluetoothInputStreamThread_readyData(JNIEnv */*env*/, jobject /*ja void QtBluetoothLE_leScanResult(JNIEnv *env, jobject, jlong qtObject, jobject bluetoothDevice, jint rssi, jbyteArray scanRecord) { + if (Q_UNLIKELY(qtObject == 0)) + return; + reinterpret_cast<AndroidBroadcastReceiver*>(qtObject)->onReceiveLeScan( env, bluetoothDevice, rssi, scanRecord); diff --git a/src/bluetooth/qbluetoothdevicediscoveryagent_android.cpp b/src/bluetooth/qbluetoothdevicediscoveryagent_android.cpp index 6369cedb..443be14d 100644 --- a/src/bluetooth/qbluetoothdevicediscoveryagent_android.cpp +++ b/src/bluetooth/qbluetoothdevicediscoveryagent_android.cpp @@ -88,6 +88,9 @@ QBluetoothDeviceDiscoveryAgentPrivate::~QBluetoothDeviceDiscoveryAgentPrivate() if (m_active != NoScanActive) stop(); + if (leScanner.isValid()) + leScanner.setField<jlong>("qtObject", reinterpret_cast<jlong>(nullptr)); + if (receiver) { receiver->unregisterReceiver(); delete receiver; |