getUsbPrinters method

  1. @override
Future<List<PrinterDeviceInfo>> getUsbPrinters()
override

Implementation

@override
Future<List<PrinterDeviceInfo>> getUsbPrinters() async {
  try {
    final List<dynamic>? list =
        await methodChannel.invokeMethod<List<dynamic>>('getUsbPrinters');
    if (list == null) return const [];
    // Parseo defensivo: una entrada malformada del lado nativo no debe
    // tirar abajo el listado completo (ni crashear la app).
    final printers = <PrinterDeviceInfo>[];
    for (final e in list) {
      if (e is! Map) continue;
      final info = PrinterDeviceInfo.fromMap(Map<String, dynamic>.from(e));
      if (info.hasInstanceId) printers.add(info);
    }
    return printers;
  } on PlatformException {
    return const [];
  } on MissingPluginException {
    return const [];
  }
}