Have you ever dismissed a notification, then immediately regretted it because it had an OTP or an important message?
That's exactly why I built Notification Box.
The Problem
Android notifications are ephemeral by design — once they're gone, they're gone. WhatsApp previews, OTP codes, delivery alerts, deleted messages — all vanish the moment you swipe them away or the app withdraws them.
I found myself constantly missing OTPs that expired before I could use them, or losing track of messages from apps that don't keep a proper history.
What Notification Box Does
Notification Box runs a lightweight background service that archives every notification before it disappears. Think of it as a notification DVR.
Key features:
- 📦 Automatic archiving — captures notifications from all apps silently in the background
- 🔍 Searchable history — find any past notification instantly
- 🔑 OTP auto-extraction — detects and copies OTP codes automatically
- 🗑️ Recover deleted messages — retrieve messages from apps that delete previews
- 🔒 Privacy-first — everything stays on your device, no cloud sync
The Technical Side
Built with:
- Kotlin + Android SDK
-
NotificationListenerServicefor capturing notifications - Room database for local storage
- Jetpack Compose for the UI
- No root required — uses standard Android accessibility APIs
The trickiest part was handling the NotificationListenerService lifecycle correctly across different OEM battery optimizations. Samsung and Xiaomi devices in particular aggressively kill background services — I ended up using a foreground service with a minimal notification to keep it alive reliably.
Try It
Available on Google Play:
👉 Notification Box on Google Play
Also launching on Product Hunt on June 17 — would love your support!
I'm Rahul, a full-stack Android & web engineer. Happy to answer any questions about the implementation or the challenges of building a reliable notification listener service on modern Android.
What notification-related pain points have you run into? Drop them in the comments 👇
Top comments (0)