scanForDevices method
Implementation
@override
Stream<UnprovisionedDevice> scanForDevices() {
_scanStreamController?.close();
_scanStreamController = StreamController<UnprovisionedDevice>.broadcast(
onCancel: () {
stopScan();
},
);
_scanEventChannel.receiveBroadcastStream().listen(
(dynamic event) {
if (event is Map) {
try {
final device = UnprovisionedDevice.fromMap(
Map<String, dynamic>.from(event),
);
_scanStreamController?.add(device);
} catch (e) {
debugPrint('Error parsing scanned device: $e');
}
}
},
onError: (dynamic error) {
debugPrint('Scan stream error: $error');
_scanStreamController?.addError(error);
},
onDone: () {
_scanStreamController?.close();
},
);
return _scanStreamController!.stream;
}