Skip to content

Explainer

Default SMS App On Android: Why Forwarding Needs It

Why Android SMS apps need default-app permissions to forward messages, how the default SMS role works, and what WizeSMS actually does with it.

Default SMS App On Android: Why Forwarding Needs It preview

Written by the Fulldive product engineering team, based on direct inspection of the repositories listed below.

Why Android SMS apps need default app permissions

If you’ve just installed an SMS forwarder and you’re wondering why it keeps asking to become your default SMS app on Android, the short answer is: Android will not deliver incoming SMS or MMS to an app that is not in the default SMS role. That is the platform’s design, not an app trick. This post unpacks what that means and what WizeSMS (previously Dive SMS, package com.fulldive.extension.divesms) does with the role.

This is the “default SMS app forwarding” question users actually ask, and it is worth answering clearly.

What the default SMS role is

Since Android 4.4 (KitKat), Android has treated SMS and MMS as a privileged intent flow. Only one app at a time is the default SMS handler. That app:

  • Receives the SMS_DELIVER and WAP_PUSH_DELIVER broadcasts when messages arrive.
  • Writes to the SMS and MMS tables in the telephony provider.
  • Is the app Android launches when a user taps an SMS link or uses the common SMS intents.

Other apps can still read the SMS database with the right permission, but they do not receive new incoming messages in real time. For a forwarder that needs to act on every inbound SMS the moment it arrives, that distinction matters a lot.

How WizeSMS handles the role

WizeSMS is a full SMS/MMS client first, and it shows a default SMS warning banner (3838a63b) if it is installed but not set as the default. The banner exists because without the role, the forwarding feature cannot work — incoming messages never arrive at the app.

What WizeSMS does with the role once it has it:

  • Handles SMS and MMS as a regular messaging app. Inbox, conversations, sending, scheduling, blocking, notifications. This is the bulk of the repository’s 2,474 commits since February 2015.
  • Optionally forwards messages to a destination you configure. Email via Gmail OAuth (dd629f2f) and Telegram via a Cloud Function relay (fa8b722b). Both destinations are opt-in, configured in a dedicated forwarding settings screen (4c1ec87b).
  • Notifies you on forwarding status (a53b2673) so a failed forward is visible, not silent.

Forwarding is not on by default. The default SMS role on its own does not cause WizeSMS to send your messages anywhere. You have to configure a destination and turn it on.

What the role does not grant

Being default SMS app does not mean an app has a blank check over your phone. It specifically does not:

  • Give the app permission to read your email, contacts, or call log unless those permissions are also requested and granted.
  • Let the app access other apps’ storage.
  • Let the app forward to email or Telegram automatically — those destinations are separate opt-in flows that require additional credentials (Gmail OAuth, Telegram pairing via the Cloud Function).
  • Make the app immune to removal. Switching back to another SMS app restores the prior default handler, and uninstalling WizeSMS returns the role to Android’s picker.

Being clear about this matters. Default-SMS permission is narrow but important, and it should not be conflated with blanket device access.

Why the role is a forwarding requirement, specifically

A forwarder that is not the default SMS app can try to work around the platform by polling the SMS content provider for new rows, but this is brittle. Messages can be missed during polling gaps. MMS is harder to reconstruct. Some OEM skins apply additional restrictions on background readers. That is why robust SMS forwarders become the default handler: it is the only way to guarantee delivery.

WizeSMS’s 2025 reliability work illustrates how much of this is non-trivial even with the role: critical MMS/SMS reliability fixes (68ecf707), MMS error handling (5895a312), SMS/MMS reliability and debugging tooling (0f382e4a), and Realm migration nullability fixes (432b22cf). Those are the kinds of bugs that exist even when you’re doing things the “right” way on Android. A workaround that avoids the default role would be orders of magnitude less reliable. The dedicated SMS and MMS reliability post goes deeper.

Switching back to your old SMS app

Because only one app at a time is default, switching is reversible:

  1. Open Settings → Apps → Default apps → SMS app (the exact path varies by Android version and OEM skin).
  2. Select your previous SMS app.
  3. WizeSMS will stop receiving new inbound SMS; the forwarding feature effectively pauses because it has nothing to forward.

If you uninstall WizeSMS directly, Android will prompt you to pick a new default handler. Your message database remains in the system telephony provider; individual apps don’t own it.

Privacy tradeoffs to keep in mind

Even though the default SMS role itself is narrow, forwarding built on top of it is a privacy decision. Sending verification codes or banking alerts to an email inbox or a Telegram bot widens the attack surface on those messages. WizeSMS surfaces an in-app privacy note (42f44224) at the point of opt-in for that reason. The full argument is in forwarding OTPs and verification codes: privacy tradeoffs.

We want users to turn forwarding on with an accurate picture of what it does, not because they didn’t realize it had any implications.

WizeSMS is listed on the Fulldive apps page. The FAQ and About page cover the broader ecosystem. Support questions go to support@fulldive.com or the Discord link inside the app (dfc606b3).

Sources

Last updated: 2026-04-16. Commit hashes and version numbers are drawn from Fulldive repositories inspected on 2026-04-13.