getInstalledAppsForFlutterFlow function
📱 OBTER APLICATIVOS INSTALADOS - Compatível com FlutterFlow
Retorna lista de aplicativos instalados no formato JSON. Ideal para FlutterFlow: Pode ser usado diretamente no Local State JSON.
Retorna List<Map<String, dynamic>> com:
label: Nome do aplicativo (ex: "YouTube")packageName: Nome do pacote (ex: "com.google.android.youtube")iconBase64: Ícone em Base64 (opcional)
Exemplo no FlutterFlow:
final installedApps = await getInstalledAppsForFlutterFlow();
// Armazenar em: State > installedApps (JSON)
Implementation
Future<List<Map<String, dynamic>>> getInstalledAppsForFlutterFlow() async {
print(
'📱 [INSTALLED_APPS] Obtendo aplicativos instalados para FlutterFlow...');
try {
final stopwatch = Stopwatch()..start();
// Usar método para JSON
final apps = await StopouBlocker.getInstalledApps();
stopwatch.stop();
final duration = stopwatch.elapsedMilliseconds;
print(
'📱 [INSTALLED_APPS] ✅ ${apps.length} aplicativos obtidos em ${duration}ms');
print('📱 [INSTALLED_APPS] 📊 Formato: JSON (compatível FlutterFlow)');
// Log dos primeiros 3 para validação
final appsToLog = apps.take(3);
for (int i = 0; i < appsToLog.length; i++) {
final app = appsToLog.elementAt(i);
final hasIcon = app['iconBase64'] != null ? '🎨' : '🚫';
print(
'📱 [INSTALLED_APPS] ${i + 1}. $hasIcon ${app['label']} (${app['packageName']})');
}
if (apps.length > 3) {
print('📱 [INSTALLED_APPS] ... e mais ${apps.length - 3} aplicativos');
}
return apps;
} catch (e) {
print('📱 [INSTALLED_APPS] ❌ Erro ao obter aplicativos: $e');
rethrow;
}
}