diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BtLEQueue.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BtLEQueue.java index 15e6df2b..21c9a3ae 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BtLEQueue.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BtLEQueue.java @@ -330,8 +330,14 @@ public final class BtLEQueue { LOG.info("Connected to GATT server."); setDeviceConnectionState(State.CONNECTED); // Attempts to discover services after successful connection. - LOG.info("Attempting to start service discovery:" + - gatt.discoverServices()); + List cachedServices = gatt.getServices(); + if (cachedServices != null && cachedServices.size() > 0) { + LOG.info("Using cached services, skipping discovery"); + onServicesDiscovered(gatt, BluetoothGatt.GATT_SUCCESS); + } else { + LOG.info("Attempting to start service discovery:" + + gatt.discoverServices()); + } break; case BluetoothProfile.STATE_DISCONNECTED: LOG.info("Disconnected from GATT server.");