From b5d4289f1be4cb037293bce70524457d18db964e Mon Sep 17 00:00:00 2001 From: Paul DeMarco Date: Wed, 8 Apr 2020 17:49:40 -0400 Subject: [PATCH] Add state check before discoverServices is called. (#537) --- lib/src/bluetooth_device.dart | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/src/bluetooth_device.dart b/lib/src/bluetooth_device.dart index 3c0bca46..e6be12e7 100644 --- a/lib/src/bluetooth_device.dart +++ b/lib/src/bluetooth_device.dart @@ -53,6 +53,11 @@ class BluetoothDevice { /// Discovers services offered by the remote device as well as their characteristics and descriptors Future> discoverServices() async { + final s = await state.first; + if (s != BluetoothDeviceState.connected) { + return Future.error(new Exception( + 'Cannot discoverServices while device is not connected. State == $s')); + } var response = FlutterBlue.instance._methodStream .where((m) => m.method == "DiscoverServicesResult") .map((m) => m.arguments)