findScannedDevices method
Implementation
Future<List<ScanResult>> findScannedDevices({bool isFiltered = true}) async {
await _requestPermission();
final scanned = <ScanResult>[];
Set<DeviceIdentifier> seen = {};
final subscription = FlutterBluePlus.scanResults.listen((results) {
for (final r in results) {
if (!seen.contains(r.device.remoteId)) {
seen.add(r.device.remoteId);
scanned.add(r);
}
}
});
await FlutterBluePlus.startScan();
await Future.delayed(const Duration(seconds: 2));
await FlutterBluePlus.stopScan();
subscription.cancel();
if (isFiltered) {
return scanned.where((r) => scanFilter(r.device)).toList();
}
return scanned;
}