startDiscovery method

Future<List<DiscoveredPrinter>> startDiscovery({
  1. String type = 'both',
})

Starts discovering Zebra printers using Zebra Link-OS SDK

type Discovery type: "bluetooth", "network", or "both" (default)

Returns a list of discovered Zebra printers

Implementation

Future<List<DiscoveredPrinter>> startDiscovery({String type = 'both'}) async {
  try {
    print('[PrinterManager] startDiscovery called with type: $type');
    final result = await _channel.invokeMethod('startDiscovery', {'type': type});

    if (result == null) {
      print('[PrinterManager] startDiscovery returned null');
      return [];
    }

    final List<dynamic> printersList = result as List<dynamic>;
    print('[PrinterManager] startDiscovery found ${printersList.length} printers');

    final printers = printersList.map((e) => DiscoveredPrinter.fromMap(e as Map<dynamic, dynamic>)).toList();

    return printers;
  } on PlatformException catch (e) {
    print('[PrinterManager] startDiscovery error: ${e.code} - ${e.message}');
    throw Exception("Discovery Error (${e.code}): ${e.message}");
  } catch (e) {
    print('[PrinterManager] startDiscovery unexpected error: $e');
    rethrow;
  }
}