startDiscovery method
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;
}
}