startUsbScan method
Future
startUsbScan(
{ - Duration refreshDuration = const Duration(seconds: 5),
})
Implementation
Future<dynamic> startUsbScan({
Duration refreshDuration = const Duration(seconds: 5),
}) async {
if (Platform.isAndroid || Platform.isMacOS) {
_usbSubscription?.cancel();
_usbSubscription =
Stream.periodic(refreshDuration, (x) => x).listen((event) async {
List<Printer> list = [];
final devices =
await FlutterThermalPrinterPlatform.instance.startUsbScan();
for (var e in devices) {
final map =
Map<String, dynamic>.from(e is String ? jsonDecode(e) : e);
final device = Printer(
vendorId: map['vendorId']?.toString(),
productId: map['productId']?.toString(),
name: map['name']?.toString(),
connectionType: ConnectionType.USB,
address: map['bsdPath']?.toString() ?? map['vendorId']?.toString(),
isConnected: false,
);
final isConnected =
await FlutterThermalPrinterPlatform.instance.isConnected(device);
device.isConnected = isConnected;
list.add(device);
}
_devicesstream.add(list);
});
return;
} else {
throw Exception('Unsupported Platform');
}
}