In the modern world, mobile communications remains a critical communication channel, even despite the dominance of instant messengers. For businesses and private users, it is often vital to know whether a message reached the recipient or was lost in the operator’s networks. The standard “Delivery Report” function in Android allows you to receive confirmation that SMS message was successfully received by the subscriber's device.
However, the mechanism of operation of this function is not always transparent to the end user. Many people encounter situations where the “Delivered” status never appears, or, on the contrary, a false confirmation comes. Understanding how the notification system works at the level of Android OS and GSM networks will help you avoid false conclusions and correctly interpret data on data transfer.
In this guide we will look not only at the banal activation of a checkbox in the settings, but also delve into technical details: from PDU error codes to differences in the behavior of standard applications and third-party services. You will learn to diagnose problems when reports stop coming, and you will understand why in some cases you cannot rely on them.
The principle of operation of the message status system
To correctly set up reporting, you need to understand what is happening “under the hood” when sending a text. When you send SMS, your device communicates with the nearest operator base station. The network receives the packet and sends back a technical acknowledgment (ACK) signal. This does not mean that the recipient has the message, it just got into the operator’s gateway (SMSC).
Next, the network tries to deliver the message to the recipient’s phone. If the phone is turned on and within coverage, a successful transmission occurs and the recipient's device sends its confirmation signal. It is this response signal that generates the same one delivery reportthat you see in the application. If the phone is turned off, the message is stored in the SMSC queue for a time to live (TTL) set by the operator.
⚠️ Attention: The delivery report only confirms that the message has entered the SIM card memory or the internal storage of the recipient's phone. It does not guarantee that a person has read the text or even seen the notification.
It is important to distinguish between the “Sent” and “Delivered” statuses. The first means that your phone has successfully transferred data to the operator. The second is that the delivery cycle has closed. In some cases, especially when roaming or using Virtual SIM, the acknowledgment chain may be broken and you will not receive the final status, even if the message has arrived.
Technically, the process is controlled by the L3 protocols of the GSM/UMTS/LTE stack. The messaging application only visualizes these events by receiving (broadcast) from the system modem. If the phone firmware or application has bugs, the visualization may not be updated, although the message was physically received.
Activation of reports in standard applications
The setup interface may differ depending on the version Android and the manufacturer's shell (MIUI, OneUI, ColorOS). However, the logic remains the same: searching for a switch in the deep application settings. In most stock versions of Android (Pixel, Motorola, Nokia), the path is as follows: open the Messages application, click on the profile avatar or three dots, select Settings.
Next you need to find a section that may be called “SMS”, “Text messages (SMS)” or “Advanced”. This is where the required toggle switch “Request delivery report” is hidden. After activation, the system will begin to generate requests for each outgoing SMS.
- 📱 Google Messages: Settings → Chat → (scroll down) → Delivery reports.
- 📱 Samsung Messages: Settings (three dots) → More settings → Text messages → Delivery reports.
- 📱 Xiaomi (MIUI): Settings → Additional settings → Delivery reports.
It is worth noting that on some devices with aggressive energy saving (for example Huawei or older models Meizu) the system can force stop the background process waiting for a response from the network. In this case, the report may not arrive, even if the setting is enabled.
After enabling the function, try sending a test message to another number. Usually, a small “Delivered” message or a corresponding icon appears under the message. If the status changes to "Not Delivered" or "Error", the system will provide more detailed information when you click on the message.
Settings in third-party SMS clients
Many users prefer to replace standard applications with more functional analogues, such as Textra, QKSMS or Pulse SMS. These applications often have more flexible settings for logging and status visualization. The principle of enabling reports here is similar, but the terminology may differ.
For example, in the application Textra you need to go to “Settings” → “SMS” → and make sure that the “Request delivery report” checkbox is checked. The peculiarity of third-party clients is that they can save status history longer or allow you to export logs. This is useful for business correspondence where an archive of confirmations is required.
⚠️ Attention: When installing a third-party SMS application, Android will require you to make it the default application. Old messages may not be immediately displayed in the new interface, but new reports will arrive correctly.
Some advanced clients allow you to configure notifications separately for delivery reports. You can set a sound or vibration specifically for the “Message Delivered” event so you don’t miss an important confirmation moment. This is implemented through Android 8.0+ notification channels.
Also, third-party applications often work better with long messages (MMS or concatenated SMS), breaking them into parts and reporting on each part separately. This gives a more accurate picture of delivery than standard tools that can show the overall status.
☑️ Checking SMS settings
Interpretation of error codes and statuses
When a delivery report does not arrive or comes with an error, the system often issues a numeric code or a short text description. Understanding these codes is the key to diagnosis. The most common statuses range from simple “Sent” to specific protocol errors.
Below is a table of the main statuses that you may encounter while using Android for communication:
| Status / Code | Value | Cause of occurrence |
|---|---|---|
| Pending | Pending | Message in the operator's queue, the recipient's phone is turned off. |
| Delivered | Delivered | Successful confirmation from the recipient's device. |
| Failed (32) | Error delivery | The storage period in SMSC has expired or the number does not exist. |
| Blocked | Blocked | The recipient has added you to a blacklist or turned on a spam filter. |
| No Service | No network | Your phone does not have a signal to receive status from the operator. |
Code 32 or similar numeric values often indicate that the message was permanently rejected by the network. This can happen if the subscriber's number is changed, the SIM card is removed, or the message's lifetime on the operator's network has expired (usually 24 to 72 hours).
The “Blocked” status is becoming more common due to the built-in anti-terrorism and anti-spam filters of Google and phone manufacturers. If your number is marked as spam, the delivery report may not arrive at all, or an error status will come because the message was filtered at the recipient device level before notifying the user.
Delivery problems in new versions of Android
With the release of Android 10, 11, 12 and newer, Google has introduced strict restrictions on background activity of applications. This directly affected the work of SMS trackers. The system can “kill” the process of waiting for a response to save battery, especially if you have not opened the messages application for a long time.
In addition, the implementation of the protocol RCS (Rich Communication Services)which Google promotes as a replacement for classic SMS, creates confusion. RCS (Chat features) messages are delivered over the Internet and have their own confirmation mechanisms (blue checkmarks, like in WhatsApp). Delivery reports for classic SMS may conflict or not appear if the chat is in RCS mode.
- 🔋 Power saving: Check to see if there is a background activity limit for the Messages app.
- 🌐 Airplane mode: Turning Airplane mode on briefly resets the SMSC connection, reports may not arrive with a delay.
- 🔄 App update: Old version of Google Messages may not process new network signaling packets correctly.
It is also worth taking into account regional characteristics. In some countries, operators are gradually disabling support for classic SMS in favor of Internet protocols, which makes the reporting mechanism unstable. If you are traveling, make sure that data and SMS roaming is activated, otherwise the confirmation simply will not be able to return to your device.
Using commands and ADB for diagnostics
For advanced users and developers, it is possible to obtain more detailed information about the status of SMS through the debug bridge ADB (Android Debug Bridge). This allows you to see system logs in real time, bypassing the graphical interface.
By connecting the phone to a computer with USB debugging enabled, you can run a command to monitor the radio module logs. This will show raw data about interaction with the network.
adb logcat -b radio | grep -i"sms" | grep -i"delivery"
This command will filter the system log, leaving only lines related to SMS and delivery. You will be able to see the moments when modem sends a request and receives a response (or timeout). This is the only way to find out the “truth” if the application on the screen is lying or frozen.
You can also use commands to check the current configuration of the SMS center (SMSC), although for the average user this is rarely useful, since the center number is automatically registered by the operator when the SIM card is first installed.
⚠️ Attention: Using ADB requires enabling developer mode. Do not change the modem settings via ADB if you are not sure of your actions - this can lead to a complete loss of connection.
In a corporate environment, special gateways and APIs are used for mass mailings, which provide reports in XML or JSON format, but this is the level of server solutions, and not the settings of the smartphone itself.
Frequently asked questions (FAQ)
Why does not a delivery report arrive, although the message has been sent?
Most likely, the recipient’s phone is turned off, there is no network, or the SIM card memory is full. It is also possible that the recipient's operator does not support the transmission of such reports or they are blocked by privacy settings.
Does the recipient see that I have enabled a delivery report?
No, the standard SMS mechanism does not notify the recipient that the sender has requested confirmation. This is a hidden system process. However, in some rare cases and on older phones, a “Subscriber has requested a report” notification could pop up.
Do operators charge additional fees for reports?
Incoming delivery reports are usually free. However, the report generation procedure itself is part of the SMS service. In some older tariffs, a nominal fee may have been charged for each report, but in modern tariff plans it is usually free.
Is it possible to receive a report if the message came via the Internet (RCS)?
For RCS (Chat features) messages, the mechanism is different. There, the "Delivered" and "Read" statuses work through Google's Internet servers, and not through the GSM signaling network. Settings for them are in a separate menu inside the dialog.
How can you find out if a message has been read if there are no checkmarks?
Technically, using standard SMS means it is impossible to find out whether it has been read, only about delivery to the device. The “Read” function is available only in instant messengers (WhatsApp, Telegram) or in the RCS protocol, provided that both users are connected to the Internet.