import 'dart:async'; import 'package:flutter/services.dart'; class ScanResult { final String barcode; final String codeType; ScanResult({required this.barcode, required this.codeType}); } class ScannerService { static const _eventChannel = EventChannel('com.example.pad_scanner/scan'); Stream? _scanStream; Stream get scanResults { _scanStream ??= _eventChannel .receiveBroadcastStream() .map((event) => event as Map) .map((event) => ScanResult( barcode: event['barcode'] as String? ?? '', codeType: event['codeType'] as String? ?? 'UNKNOWN', )); return _scanStream!; } }