Android Call/SMS blocker. (Android 10+)
- Screenshots
- How it works
- Features
- Limitations
- FAQ
- Permissions
- Privacy
- Support
- Language Support
- Contributing
- Some ideas
- Donate
| History | Settings | Notification |
|---|---|---|
It works without replacing your call/SMS app.
-
For call:
It's a Caller ID app. -
For SMS:
-
Standalone Mode:
The app takes over SMS notifications, you need to disable notifications from the SMS app to avoid duplicates.
- Pros
- Works with any SMS app.
- Advanced notification management (customizable sound/icon/color/LED)
- Built-in "Quick Copy" support (for copying OTP codes)
- Cons
- Feels disconnected, as messages and notifications are handled by two different apps.
- The app doesn't handle RCS and MMS multimedia content.
- Requires SMS permission.
- Pros
-
Screening provider mode:
Similar to call screening, the app works as a service. The SMS app asks it to check messages in real time, this app simply replies "block" or "allow".
- Pros
- Notifications are handled by the SMS app, feels more natural and intuitive.
- Works without SMS permission.
- Better RCS/MMS support.
- Cons
- It Only works with SMS apps that support this SMS screening protocol
- The SMS app might not support features like "Quick Copy" or notification customizing.
- Pros
-
Tip
You can kill the app after setup, it doesn't need to stay running in the background.
| Filter | It checks |
|---|---|
| Contacts | From a contact? |
| Contact Group | From a contact group? |
| Contact Prefix | Matches prefix of an existing contact? Use case: save one clinic number xxxx22 to allow its full range xxxx11-xxxx99 |
| STIR/SHAKEN | Fails STIR/SHAKEN attestation? |
| Repeated Calls | Multiple calls from the same number in a short while? |
| Dialed Number | Have you dialed the number? |
| Answered Number | Allow previously answered numbers |
| Emergency | Allow calls for a while after dialing an emergency number |
| Push Alert | Allow calls after receiving notifications from other apps, e.g.: "Your order has been taken by driver ...", the driver may then contact you. |
| SMS Alert | Allow calls after receiving SMS messages like: "[From ...] We are calling to inform ..., please feel free to answer." |
| SMS Bomb | Block continuous OTP message floods |
| Recent Apps | Allow calls if some apps have been used recently. Use case: You ordered Pizza online and soon they call you to refund. |
| Meeting Mode | Decline calls during online video meetings. |
| Off Time | A time period that always allows calls, usually no spams at night. |
| Spam Database | If it exists in the spam database. Any public downloadable spam databases can be integrated, such as the DNC. |
| Schedule & Calendar | Auto adjust rules based on time schedule and calendar events |
| Geolocation & Carrier | Block numbers based on geolocation or carrier name |
| CNAP | The caller's display name |
| Instant Query | Check the incoming number online in real time, querying multiple API endpoints simultaneously, such as the PhoneBlock. |
| Report Spam | Automatically or manually report the number to build our crowd-sourced databases, protecting others and yourself. |
| Regex (regular expression) |
Check the Wiki for examples. |
- Auto clear SMS: No plan
- Local AI support: Future plan, not yet ready
- RCS support: No plan
- Android 9- support: No plan
- Security warning from Google Play when installing this app
- How the "Priority" works
- It stops working after being killed
- Android 16+ always shows a "missed call" notification for silenced calls
| Permission (all optional) | Why |
|---|---|
| INTERNET | For database downloading / instant query / number reporting |
| ANSWER_PHONE_CALLS | Reject, answer and hang-up calls |
| POST_NOTIFICATIONS | Show notifications |
| READ_CONTACTS | Match contacts |
| RECEIVE_SMS / RECEIVE_MMS | For SMS notification screening |
| READ_CALL_LOG / READ_SMS | For allowing repeated calls |
| PACKAGE_USAGE_STATS | For feature: Recent Apps (check whether an app has been used recently) |
| READ_PHONE_STATE | For BlockMode: Answer+Hang-up (monitor ringing state) |
| REQUEST_IGNORE_BATTERY_OPTIMIZATIONS | For it to keep working after being swiped and killed |
| NOTIFICATION_ACCESS | For feature: Push Alert (receiving notifications from other apps) |
| WRITE_SETTINGS | For customizing call ringtone |
| READ_LOG | For reporting bugs with logcat messages |
| SYSTEM_ALERT_WINDOW | For the caller ID floating window |
-
For offline features
No data collection.
-
For online features:
The API endpoints will see your:
- IP address
- TLS and TCP fingerprints (which would reveal your Android version)
- The reported number(including the country code)
Nothing else.
You can also disable the internet access , or download the offline apk from the release page.
-
Reproducible apk
-
Apk signing signature:
apksigner verify --print-certs SpamBlocker.apk7b1ce727856f3427eab1fadfad6c9730cd4e6ba201661547f009206377dffb58
Full Privacy Policy
- Most problems are already covered in the issue list, please search first.
- There's a matrix channel.
Languages are translated using AI, PRs for corrections are welcome.