testAppBlockerAction function
🧪 Custom Action: Teste completo de bloqueio de aplicativos
Para FlutterFlow: Use para testar e debugar o sistema de bloqueio de aplicativos no seu projeto.
Exemplo de uso no FlutterFlow:
- Ação personalizada: testAppBlockerAction
- Sem parâmetros
- Resultado: void (apenas logs)
O que faz:
- Lista apps instalados
- Seleciona um app de teste
- Inicia bloqueio
- Verifica configuração
- Para bloqueio
Logs: Verifique o console para resultados detalhados
Implementation
Future<void> testAppBlockerAction() async {
print(
'🧪 [APP_BLOCKER_TEST] ========== TESTE DE BLOQUEIO DE APPS ==========');
try {
// 1. Obter lista de apps instalados
print('🧪 [APP_BLOCKER_TEST] 1. Obtendo lista de apps...');
final apps = await StopouBlocker.getInstalledApps();
print('🧪 [APP_BLOCKER_TEST] ✅ Encontrados ${apps.length} apps');
// 2. Verificar permissão de acessibilidade
print('🧪 [APP_BLOCKER_TEST] 2. Verificando permissões...');
final hasPermission = await StopouBlocker.hasAccessibilityPermission();
print(
'🧪 [APP_BLOCKER_TEST] Permissão acessibilidade: ${hasPermission ? "✅" : "❌"}');
if (!hasPermission) {
print('🧪 [APP_BLOCKER_TEST] ⚠️ Teste limitado - permissão necessária');
return;
}
// 3. Selecionar app de teste (procura por um comum)
final testPackages = [
'com.android.chrome',
'com.google.android.youtube',
'com.whatsapp'
];
String? testPackage;
for (final pkg in testPackages) {
if (apps.any((app) => app['packageName'] == pkg)) {
testPackage = pkg;
break;
}
}
if (testPackage == null && apps.isNotEmpty) {
// Pega qualquer app disponível
testPackage = apps.first['packageName'] as String;
}
if (testPackage == null) {
print('🧪 [APP_BLOCKER_TEST] ❌ Nenhum app encontrado para teste');
return;
}
print('🧪 [APP_BLOCKER_TEST] 3. App selecionado para teste: $testPackage');
// 4. Testar bloqueio
print('🧪 [APP_BLOCKER_TEST] 4. Iniciando bloqueio...');
final startResult = await StopouBlocker.startAppBlocker([testPackage]);
print('🧪 [APP_BLOCKER_TEST] Início: ${startResult ? "✅" : "❌"}');
// 5. Aguardar um pouco
print('🧪 [APP_BLOCKER_TEST] 5. Aguardando 2 segundos...');
await Future.delayed(Duration(seconds: 2));
// 6. Parar bloqueio
print('🧪 [APP_BLOCKER_TEST] 6. Parando bloqueio...');
final stopResult = await StopouBlocker.stopAppBlocker();
print('🧪 [APP_BLOCKER_TEST] Parada: ${stopResult ? "✅" : "❌"}');
// 7. Resultado final
if (startResult && stopResult) {
print('🧪 [APP_BLOCKER_TEST] ✅ TESTE CONCLUÍDO COM SUCESSO!');
print('🧪 [APP_BLOCKER_TEST] 💡 Sistema de bloqueio funcionando');
print(
'🧪 [APP_BLOCKER_TEST] 🎯 Tente abrir $testPackage para testar o bloqueio');
} else {
print('🧪 [APP_BLOCKER_TEST] ❌ TESTE FALHOU');
print('🧪 [APP_BLOCKER_TEST] Início: $startResult, Parada: $stopResult');
}
} catch (e) {
print('🧪 [APP_BLOCKER_TEST] ❌ Erro no teste: $e');
}
print('🧪 [APP_BLOCKER_TEST] ==========================================');
}