O NotificationReader é um aplicativo Android desenvolvido para monitorar notificações de aplicativos bancários e de pagamento, filtrando eventos relevantes (como transações PIX, compras e pagamentos) e enviando os dados capturados para uma API centralizada.
- Monitoramento em Tempo Real: Escuta notificações de apps como Nubank, Banco do Brasil, Porto Seguro, Google Wallet, entre outros.
- Filtro Inteligente: Utiliza processamento de texto para identificar apenas notificações relacionadas a transações financeiras.
- Deduplicação (Debounce): Evita o envio de notificações duplicadas para a API em um curto intervalo de tempo.
- Persistência: Implementado como um Foreground Service com lógica de reconexão automática para garantir que o monitoramento não seja interrompido pelo sistema.
- Suporte a Dispositivos Xiaomi: Atalhos e instruções integradas para contornar restrições de economia de bateria e início automático da MIUI.
- Linguagem: Kotlin
- Interface: Jetpack Compose (Material 3)
- Networking: OkHttp para comunicação com a API.
- Serviços Android:
NotificationListenerServiceeForeground Service.
O projeto segue uma estrutura organizada para facilitar a manutenção:
network: Comunicação com a API.service: Lógica de processamento e filtragem.ui: Telas e componentes de interface.utils: Utilitários para permissões, bateria e ajustes de hardware.model: Modelos de dados.
- Android Studio Ladybug ou superior.
- Dispositivo Android com SDK 24 (Android 7.0) ou superior.
- Clone o repositório.
- No diretório raiz do projeto, crie (ou edite) o arquivo
local.properties. - Adicione a URL da sua API no seguinte formato:
API_URL=https://sua-api.com/endpoint
- Abra o projeto no Android Studio.
- Compile o projeto:
./gradlew assembleDebug. - Instale o APK no seu dispositivo.
Para que o app funcione corretamente, você deve seguir estes passos após abrir o app pela primeira vez:
- Acesso a Notificações: Clique no card de status e ative a permissão para o "NotificationReader".
- Otimização de Bateria: Desative as restrições de bateria para o app (coloque em "Sem Restrições").
- Xiaomi (MIUI):
- Ative o "Início Automático".
- No menu de apps recentes, segure o app e clique no ícone de Cadeado 🔒 para evitar que o sistema o feche.
Você pode enviar um POST de teste diretamente pela interface do aplicativo para verificar se a sua API está recebendo os dados corretamente.
Desenvolvido por Juliano Biffi.