startScan method

  1. @override
Future<void> startScan({
  1. required void onScanResult(
    1. BleDevice result
    ),
  2. void onScanStart(
    1. bool success
    )?,
  3. void onScanStop(
    1. bool success
    )?,
  4. String? macFilter,
  5. bool? allowDuplicates,
  6. int? timeout,
})
override

Implementation

@override
Future<void> startScan({
  required void Function(BleDevice result) onScanResult,
  void Function(bool success)? onScanStart,
  void Function(bool success)? onScanStop,
  String? macFilter,
  bool? allowDuplicates,
  int? timeout,
}) async {
  dynamic broadcastStream;

  broadcastStream =
      _startScanEventChannel.receiveBroadcastStream().listen((result) {
    switch (result["event"]) {
      case "onScanResult":
        onScanResult(_mapScanResult(result["value"]));
        break;
      case "onScanStart":
        onScanStart?.call(result["value"] as bool);
        break;
      case "onScanStop":
        broadcastStream.cancel();
        onScanStop?.call(result["value"] as bool);
        break;
      default:
        return;
    }
  });

  return await _methodChannel.invokeMethod<void>('startScan', {
    'macFilter': macFilter,
    'allowDuplicates': allowDuplicates,
    'timeout': timeout
  });
}