Eliminate expensive monthly SMS API gateways and third-party fees. SMS Campaign Manager leverages your device’s native SIM cards, unlimited carrier SMS quotas, CSV contact intelligence, and background execution to automate high-impact bulk messaging with 100% data privacy.
Built with Kotlin, Jetpack Compose, and Android system services for high throughput, battery resilience, and precision delivery tracking.
Directly integrates with Android’s SubscriptionManager. Detects active SIM slots (Jio, Airtel, Vodafone, T-Mobile), monitors roaming flags, and lets you assign dedicated campaigns to specific SIMs or alternate automatically.
Effortlessly ingest thousands of contacts in seconds. The built-in parser automatically sanitizes phone numbers, normalizes country codes to E.164, strips invalid characters, and purges duplicate numbers on the fly.
Personalize each message using placeholders like {name}, {company}, {amount}, or custom CSV columns. Real-time GSM-7 and UCS-2 segment calculator ensures you never pay unexpected split SMS penalties.
Powered by Android SmsSendingService running as a sticky foreground service with a persistent notification. Employs CPU WakeLocks to keep sending smoothly even when your phone screen turns off or switches apps.
Carrier daily SMS limit reached? The app pauses gracefully and automatically schedules MidnightResetReceiver to resume the moment your carrier balance refreshes at 00:00. Even survives unexpected device reboots.
Your client data belongs strictly to you. Features military-grade AES-256 encrypted local backups, automated periodic snapshots, and 1-tap PDF & CSV delivery audit report exports for your records or client proof-of-work.
Experience how SMSCampaignManager executes variable template substitutions, calculates SMS segment bounds, adjusts interval delays, and dispatches messages in real time.
See how the built-in ContactImporter and PhoneValidator inspect raw CSV files, strip duplicates, sanitize white spaces, and enforce E.164 standardization.
Engineered adhering to Google's official Android Architecture Guidelines with Clean Architecture, unidirectional data flow, and native performance.
100% Kotlin-written declarative UI using Material Theme 3. Fully dynamic Dark Mode, adaptive screen layouts, Skeleton loaders, and custom canvas analytics charts.
Decoupled Clean Architecture featuring Dagger Hilt for dependency injection, Kotlin Coroutines for asynchronous dispatching, and StateFlow for state management.
High-performance SQLite abstraction with Room. Stores campaigns, contacts, recipient status codes, and scheduled jobs with zero latency and full offline support.
Direct access to SmsManager, SubscriptionManager, and WorkManager with custom BroadcastReceivers for device reboot and midnight rollover.
| Specification | Value | Technical Note |
|---|---|---|
| Target SDK | Android 15 (API 35) | Compiled with the latest Android 15 toolchain |
| Minimum SDK | Android 7.0 (API 24) | Compatible with over 95% of active Android devices worldwide |
| Language & Tooling | Kotlin 2.0+ / Gradle KTS | Type-safe Kotlin DSL build scripts |
| Package Namespace | com.evostackr.smscampaignmanager |
Official release package namespace |
| APK Artifact | SMSCampaignManager-signed-production.apk |
Cryptographically signed with release keystore |
Download the cryptographically signed production APK directly from GitHub. Ready for sideloading on any Android 7.0+ device.
Got questions about how device-based bulk SMS works? We've got answers.
No. SMSCampaignManager sends messages directly through your smartphone's installed SIM cards using Android's native SmsManager. You utilize whatever SMS allowance or prepaid packs your telecom carrier (e.g. Jio, Airtel, Vi, T-Mobile) provides, completely bypassing third-party gateway markups.
Yes. The app automatically queries Android's SubscriptionManager to recognize Slot 1 and Slot 2. You can specify which SIM card dispatches a specific campaign or split dispatching across both slots.
The app features built-in anti-spam safeguards: configurable rate-limiting interval delays (e.g., 3 to 10 seconds between messages), random jitter timing, customizable daily batch caps, and an automatic midnight reset worker to stay within telecom compliance limits.
Because the dispatch engine runs as an Android Foreground Service with CPU WakeLocks, it continues sending smoothly even if you navigate away or lock your screen. If your phone restarts, the BootReceiver checks pending queue states and restores campaign scheduling automatically.
Never. All contacts, messages, and dispatch records are stored locally on your device within an encrypted Room SQLite database. Your confidential customer phone numbers never leave your handset.