CallScreeningService
CallScreeningService é uma API oficial do Android, introduzida no Android 8.0 (Oreo, API 26), que permite a um app registrado como triagem de chamadas interceptar uma ligação recebida antes de ela tocar ou aparecer na tela — e decidir, em milissegundos, se ela deve ser rejeitada, silenciada ou passada normalmente.
Diferente de abordagens antigas — que dependiam de ouvir o estado do telefone e desligar a chamada manualmente depois que ela já havia começado a tocar — a CallScreeningService atua na origem, no nível do sistema de telefonia do Android. Isso significa que a decisão de bloquear acontece antes de qualquer vibração, som ou notificação chegar ao usuário.
Como um app usa essa API
Para que um app possa usá-la, o usuário precisa concedê-lo explicitamente como app de triagem de chamadas (em Configurações > Apps > Apps padrão > Triagem de chamadas, ou via o próprio fluxo de permissões do app). Uma vez concedida, o sistema chama o método onScreenCall() do app a cada ligação recebida, entregando os detalhes do número — e o app responde com a decisão de bloquear ou permitir.
O Peace Shield usa exatamente essa API como base de todo o bloqueio: veja o funcionamento completo, incluindo a diferença entre bloqueio local e bloqueio "na nuvem", em Como funciona o bloqueio de chamadas no Android: A API CallScreeningService explicada.