discoverDevices method
Busca dispositivos disponibles para compartir
Implementation
Future<List<Map<String, dynamic>>> discoverDevices() async {
if (!_isInitialized) {
await initialize();
}
try {
final result = await _channel.invokeMethod('discoverDevices');
if (result is List) {
// Conversión segura de tipos mixtos desde Java
return result.map((item) {
if (item is Map) {
// Convertir Map<Object?, Object?> a Map<String, dynamic>
final Map<String, dynamic> convertedMap = {};
item.forEach((key, value) {
if (key is String) {
convertedMap[key] = value;
}
});
return convertedMap;
}
return <String, dynamic>{};
}).toList();
}
return [];
} catch (e) {
_errorController.add('Error buscando dispositivos: $e');
// Si es un MissingPluginException, usar fallback
if (e.toString().contains('MissingPluginException')) {
return [
{
"id": "shareplay_group",
"name": "Compartir con Grupo",
"type": "shareplay",
"isConnected": false
}
];
}
return [];
}
}