startAppBlockerAction function
🚫 Custom Action: Inicia bloqueio de aplicativos específicos
Para FlutterFlow: Use esta função para bloquear apps específicos no seu projeto FlutterFlow sem precisar lidar com código nativo.
Exemplo de uso no FlutterFlow:
- Ação personalizada: startAppBlockerAction
- Parâmetros: packages (List
- Resultado: bool (sucesso/falha)
Parâmetros:
packages: Lista de packageNames para bloquear (ex:"com.bet365.mobile")
Como obter packageNames:
- Use
getInstalledAppsForFlutterFlow()primeiro - Pegue o campo
packageNamedos apps desejados - Passe para esta função
Requer: Permissão de Acessibilidade ativa
Implementation
Future<bool> startAppBlockerAction(List<String> packages) async {
print('🚫 [APP_BLOCKER] ========== INICIANDO BLOQUEIO DE APPS ==========');
print('🚫 [APP_BLOCKER] Apps para bloquear: $packages');
try {
// Validação de entrada
if (packages.isEmpty) {
print('🚫 [APP_BLOCKER] ❌ Lista de packages vazia');
return false;
}
// Verifica permissão de acessibilidade
final hasPermission = await StopouBlocker.hasAccessibilityPermission();
if (!hasPermission) {
print('🚫 [APP_BLOCKER] ❌ Permissão de acessibilidade necessária');
print(
'🚫 [APP_BLOCKER] 💡 Use requestAccessibilityPermission() primeiro');
return false;
}
// Inicia bloqueio
final success = await StopouBlocker.startAppBlocker(packages);
if (success) {
print(
'🚫 [APP_BLOCKER] ✅ Bloqueio iniciado para ${packages.length} apps');
print('🚫 [APP_BLOCKER] 📱 Apps monitorados: $packages');
print(
'🚫 [APP_BLOCKER] 🎯 Qualquer tentativa de abertura será bloqueada');
} else {
print('🚫 [APP_BLOCKER] ❌ Falha ao iniciar bloqueio');
}
return success;
} catch (e) {
print('🚫 [APP_BLOCKER] ❌ Erro ao iniciar bloqueio: $e');
return false;
}
}