findFlutterIsolateId function
Finds the Flutter UI isolate by trying each isolate until one returns a non-null widget tree. Returns the isolate ID or null.
Implementation
Future<String?> findFlutterIsolateId() async {
final ids = await findAllIsolateIds();
for (final id in ids) {
try {
final response = await vmServiceCall(
'ext.flutter.inspector.isWidgetTreeReady',
params: {'isolateId': id},
timeout: const Duration(seconds: 5),
);
final result = response['result'] as Map<String, dynamic>?;
if (result != null && response['error'] == null) return id;
} on AppDiedException {
rethrow;
} catch (_) {
// This isolate doesn't have Flutter inspector, try next
}
}
// Fallback: return last isolate (often the UI one)
return ids.isNotEmpty ? ids.last : null;
}