startScan method

  1. @override
Future<bool?> startScan({
  1. String? macAddress,
  2. List<String>? servicesUuids,
})
override

startScan starts scanning for BLE devices.

To get the results, you need to set a callback function using onScanResult.

Implementation

@override
Future<bool?> startScan({String? macAddress, List<String>? servicesUuids}) async {
  _devices.clear();
  final requestOptions = RequestOptionsBuilder.acceptAllDevices(optionalServices: servicesUuids);
  try {
    final device = await FlutterWebBluetooth.instance.requestDevice(requestOptions);
    final bleDevice = BleDevice(macAddress: device.id, name: device.name);
    _devices[device.id] = device;
    _scanController.add(bleDevice);
    _eventController.add(BleEvent.scanStopped);
    return true;
  } catch (e) {
    _eventController.add(BleEvent.scanStopped);
    log("Error getting device: $e");
    return false;
  }
}