From e1d74bf94f9bae9b778a797eb25d2763a26371a7 Mon Sep 17 00:00:00 2001 From: OliE Date: Sun, 25 Feb 2018 16:29:04 +0100 Subject: [PATCH] try to fix the problem if the broadcast receiver is not probably unregistered. --- .../bluetooth/BluetoothCommunication.java | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/android_app/app/src/main/java/com/health/openscale/core/bluetooth/BluetoothCommunication.java b/android_app/app/src/main/java/com/health/openscale/core/bluetooth/BluetoothCommunication.java index ddef4fc6..34271575 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/bluetooth/BluetoothCommunication.java +++ b/android_app/app/src/main/java/com/health/openscale/core/bluetooth/BluetoothCommunication.java @@ -420,9 +420,19 @@ public abstract class BluetoothCommunication { filter.addAction(BluetoothDevice.ACTION_FOUND); filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED); - context.registerReceiver(mReceiver, filter); - isReceiverRegistered = true; - btAdapter.startDiscovery(); + if (isReceiverRegistered == false) { + context.registerReceiver(mReceiver, filter); + isReceiverRegistered = true; + btAdapter.startDiscovery(); + } else { + try { + context.unregisterReceiver(mReceiver); + isReceiverRegistered = false; + } catch (Exception e) { + isReceiverRegistered = false; + } + startSearching(deviceName); + } } private final BroadcastReceiver mReceiver = new BroadcastReceiver() { @@ -463,8 +473,12 @@ public abstract class BluetoothCommunication { } if (isReceiverRegistered == true) { - context.unregisterReceiver(mReceiver); - isReceiverRegistered = false; + try { + context.unregisterReceiver(mReceiver); + isReceiverRegistered = false; + } catch (Exception e) { + isReceiverRegistered = false; + } } searchHandler.removeCallbacksAndMessages(null);