connectToDevice method

Future<bool> connectToDevice(
  1. String deviceId,
  2. String deviceName
)

Conecta a un dispositivo especĂ­fico

Implementation

Future<bool> connectToDevice(String deviceId, String deviceName) async {
  if (!_isInitialized) {
    await initialize();
  }

  try {
    _updateState(ScreenSharingState.connecting);

    final result = await _channel.invokeMethod('connectToDevice', {
      'deviceId': deviceId,
      'deviceName': deviceName,
    });

    if (result == true) {
      _updateState(ScreenSharingState.connected);
      _deviceController.add({
        'id': deviceId,
        'name': deviceName,
        'connected': true,
        'timestamp': DateTime.now().millisecondsSinceEpoch,
      });
      return true;
    } else {
      _updateState(ScreenSharingState.error);
      return false;
    }
  } catch (e) {
    _errorController.add('Error conectando: $e');

    // Si es un MissingPluginException, usar fallback
    if (e.toString().contains('MissingPluginException')) {
      _updateState(ScreenSharingState.connected);
      _deviceController.add({
        'id': deviceId,
        'name': deviceName,
        'connected': true,
        'timestamp': DateTime.now().millisecondsSinceEpoch,
      });
      return true;
    }

    _updateState(ScreenSharingState.error);
    return false;
  }
}