startAppBlockerAction function

Future<bool> startAppBlockerAction(
  1. List<String> packages
)

🚫 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:

  1. Ação personalizada: startAppBlockerAction
  2. Parâmetros: packages (List
  3. Resultado: bool (sucesso/falha)

Parâmetros:

  • packages: Lista de packageNames para bloquear (ex: "com.bet365.mobile")

Como obter packageNames:

  1. Use getInstalledAppsForFlutterFlow() primeiro
  2. Pegue o campo packageName dos apps desejados
  3. 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;
  }
}