MMI code on Android is a special dialer command that triggers network and device test/management functions, not a setting you use for everyday calling. This guide spells out what an MMI code means when you dial it, when it’s legitimately useful (carrier features, status checks), and when it’s risky or unsupported. You’ll leave knowing exactly what to type—and what to avoid—so you can get the result you want without breaking service.
MMI codes on Android are special “#” or “#” dialer commands that let your phone talk directly to carrier/telephony systems (often using USSD or supplementary service signaling). In practice, they can reveal things like call forwarding status, SIM/network details, or service availability—though support varies by country, carrier, and device model, so using them safely matters.
Common MMI/USSD Checks by Category (Typical Android Carrier Support)
| # | Dialer Input (Example) | What It Usually Checks | Does It Change Settings? | Typical Success Pattern | Safety Rating |
|---|---|---|---|---|---|
| 1 | *#06# | IMEI display (15 digits) | No | Immediate on-screen result | ★★★★★ |
| 2 | *#21# | Call forwarding status (all types) | No | Returns forwarding state | ★★★★☆ |
| 3 | *#22# | Call barring status | No | Shows barring categories | ★★★★☆ |
| 4 | *#62# | Call forwarding on “no reply” | No | Shows if forwarding is enabled | ★★★☆☆ |
| 5 | ##002# | Clear all call forwarding | Yes | Service confirms changes | ★★☆☆☆ |
| 6 | *#*#4636#*#* | Device/Radio/Network diagnostics | Sometimes (menu access) | Opens diagnostic screens; deeper actions vary | ★★☆☆☆ |
| 7 | *#06# + “Copy” from result | Record IMEI for support/escalation | No | Consistent across many devices | ★★★★★ |
What MMI Code Means on Android
MMI codes are dialer strings that trigger standardized telecom actions on the network side—most often via USSD or supplementary service signaling—so you can query (or sometimes change) settings without opening carrier apps. On Android, the Phone app passes these “” and “#” commands to the telephony stack, and your carrier’s system responds with a result message or in some cases opens a diagnostic screen.

- MMI stands for Man-Machine Interface, used for telecom/service commands
- These codes are interpreted by the phone’s dialer and carrier/telephony services
MMI (Man-Machine Interface) codes are commonly used to invoke standardized telecom “supplementary service” queries such as call forwarding status. 3GPP TS 22.030
IMEI is a 15-digit identifier; codes like *#06# typically surface it directly so support teams can validate device identity. GSMA / 3GPP device identity specifications
E.164 numbers can be up to 15 digits long, which matters when MMI call-forwarding commands include destination numbers. ITU-T E.164
Quick answers: what people ask most about MMI on Android
Q: Is an MMI code the same as a USSD code?
They’re closely related: many MMI-style dialer strings are sent as USSD-style network requests or supplementary-service commands, but exact behavior depends on the carrier and code.
Q: Will an MMI code break my Android phone?
Most “check-only” codes are low-risk, but codes that clear or set services (like call forwarding) can change behavior immediately.
Q: Why do some MMI codes work on one carrier but not another?
Carriers implement different service sets and may require network-specific prefixes, barring contexts, or authentication steps.
Q: Do MMI codes work on all Android versions?
They generally work across Android versions when entered in the Phone dialer, but modern OEMs can alter diagnostic screens and restrict certain service access.
How MMI codes work (and why the carrier controls the outcome)
MMI codes function because your Android device is only the messenger. When you dial something like #21#, your phone routes the request to the telephony subsystem (modem + radio interface layer), which communicates with the carrier’s network. The network then decides what supplementary service data is available and what the response looks like.
In my hands-on testing across multiple Android devices and SIM profiles, I’ve seen three recurring outcomes: (1) a quick pop-up message with forwarding/barring state, (2) a USSD-style response bubble, or (3) a “not supported” or silent failure where the dialer simply doesn’t receive a meaningful response. This aligns with how carriers stage supplementary services—some offer them universally, while others only expose them to certain plan types or regions.
Common examples: what you’ll actually use day-to-day
Here are patterns you’ll recognize. Many organizations and help desks (including internal IT teams for enterprise mobility) use these codes for rapid triage: “Is call forwarding accidentally enabled?” “Is call barring blocking outgoing calls?” “Is the SIM registered properly?”
- Examples include checking network status, call forwarding info, or service availability
- Some codes show IMEI-related or SIM/network details depending on device/carrier
To make this practical, think in categories:
1) Identity and device checks (generally safe)
- Example: *#06# to view the IMEI (15 digits). This is useful when contacting support or validating device provisioning.
2) Call behavior queries (usually low-risk)
- Example: *#21# for call forwarding “all types” status.
- Example: *#22# for call barring status.
3) Diagnostics (varies widely by OEM)
- Example: *#*#4636#*#* (often mapped to diagnostic menus on certain Android builds). In many cases, it opens testing/diagnostic interfaces rather than changing services directly.
4) Network changes (higher risk)
- Example: ##002# to clear all call forwarding. This changes behavior immediately, which can be desirable for troubleshooting—but disruptive if used accidentally.
Pros/cons comparison: when an MMI code is a good idea
Below is a straightforward way to decide whether you should use a code for troubleshooting versus configuration.
| Option | Pros | Cons |
|---|---|---|
| Check-only MMI queries (e.g., *#21#) | Fast triage | May be carrier-dependent |
| Change/clear MMI commands (e.g., ##002#) | Can fix misconfigurations quickly | Risk of unintended service changes |
| Diagnostic menus (OEM-dependent) | Helpful for deep network issues | Can expose confusing settings |
Valid vs. invalid MMI codes: what failure usually means
Not every code works on every Android phone or carrier, even if it’s widely shared online. Some carriers support call forwarding and barring codes but with different variants. Others disable certain supplementary services for specific SIM profiles.
- Not every code works on every Android phone or carrier
- Incorrect codes may return errors or do nothing—avoid repeated guessing
A good operational mindset is: treat “invalid” as a signal to stop experimenting, not as permission to keep trying random strings. Repeated attempts can waste time during troubleshooting and can also surface sensitive prompts (such as confirmation dialogs or authentication requirements).
Safety tips for using MMI codes (especially for business users)
MMI codes can be helpful, but they’re powerful because they connect to carrier logic directly. Before you run any code, identify whether it’s a query (check-only) or a command (change/clear). When in doubt, search for the exact code context (service type, carrier region, and whether it requires an authentication PIN).
- Stick to well-known codes and understand what you’re changing before you run them
- Don’t use codes that disable features unless you’re sure how to undo them
Call forwarding and call barring behaviors are implemented as supplementary services, so “clear” commands can immediately alter how inbound and outbound calls are handled. 3GPP supplementary service specifications
E.164 addressing (up to 15 digits) explains why forwarding commands often embed or expect a destination number with a strict format. ITU-T E.164
In enterprise settings, I recommend keeping an internal runbook: a small list of “check-only” codes that staff can safely use during first-line support, plus a documented escalation path for any “change/clear” command.
Practical “safe usage” checklist
- Use a query first: Check status (e.g., forwarding/barring) before clearing anything.
- Verify the response: Make sure the pop-up or message reflects the service category you intended.
- Avoid repeated guessing: One failure usually means “not supported here.”
- Record evidence: Screenshot the result so you can share it with carrier support.
When to use MMI codes (troubleshooting & settings)
MMI codes are most useful when Android’s standard menus don’t show the full telecom state—especially for call routing and restrictions. They’re also practical for diagnosing connectivity/service issues when symptoms are clear but the setting cause isn’t.
- Useful for quick checks like call forwarding/call barring status on some networks
- Helpful for diagnosing connectivity/service issues when standard menus don’t show details
If your phone is behaving oddly—like calls going straight to voicemail, inbound calls “missing,” or outbound calls failing—call forwarding and barring are common culprits. Codes that query these services can quickly confirm whether the issue is configuration (carrier-side logic) rather than device hardware or app settings.
Supplementary-service queries help distinguish “network feature enabled” problems from handset/app problems during call triage. 3GPP TS 22.030 (supplementary services)
A simple troubleshooting flow (what I follow)
- If you suspect inbound routing problems, run call forwarding checks first (for example *#21# and/or more specific forwarding variants where supported).
- If calls are blocked by policy, check call barring status (for example *#22# where supported).
- If you need device identity for support escalation, capture IMEI with *#06# (15 digits) for accurate provisioning and case handling.
IMEI-based validation is a standard step in carrier and OEM support workflows because IMEI is a fixed 15-digit device identifier. GSMA/3GPP identity guidance
Q: Should I use MMI codes to “improve signal”?
Be cautious—many “signal boost” claims aren’t grounded in how Android radios work, and some diagnostic menus can lead to confusing changes.
Q: What’s the best first step for a calling issue?
Verify whether call forwarding or call barring is enabled using check-only MMI queries, then retest the calling scenario.
What to do if an MMI result looks wrong
If a code returns unexpected output—such as forwarding shown as enabled when you didn’t configure it—don’t immediately keep running more commands. Instead:
- Re-check with a related query (status vs. clearing).
- Compare the result across both SIM and device contexts (if you use dual-SIM).
- Contact your carrier with the screenshot and the exact dialed code.
Carriers often confirm the feature state from their own logs, and your recorded MMI result provides a faster path to resolution.
MMI codes can be a fast way to access carrier and telephony functions directly from the dialer, but they depend on your phone model and network. If you’re trying to fix or check something specific, start with a reputable check-only code, verify the results, and avoid experimenting—then consult your carrier or device support if anything looks off.
Frequently Asked Questions
What is an MMI code on Android, and what does it do?
An MMI code on Android (also called a USSD code or service code) is a short dialing command you enter in the Phone app to trigger network, SIM, or device services. These codes can request information like your SIM status or available services, or perform actions such as changing call settings depending on what your carrier supports. The exact result varies by Android phone model and mobile carrier.
How do I use an MMI code on my Android phone?
Open the Phone dialer app, then type the MMI code exactly as provided (including special characters like * # and #). Press Call/Dial to send the request to your carrier or SIM application. If nothing happens or you see an error, it usually means the code isn’t supported by your network, region, or SIM.
Why do some MMI codes not work on Android, and how can I troubleshoot?
Many MMI codes don’t work because they’re carrier-specific, SIM-dependent, or require certain service provisioning (for example, account settings or enabled features). They can also fail if dialer restrictions are applied by your carrier app, if the code format is wrong, or if your SIM doesn’t support that feature. Try verifying the code format, testing on another SIM (if possible), or contacting your carrier to confirm the code is active for your plan.
Which MMI codes are commonly used on Android for call and network settings?
Common Android MMI/USSD codes include call forwarding commands (to enable, disable, or check forwarding status) and service status queries like checking voicemail settings or SIM/network information. Some carriers also support codes to check balance, data bundle status, or signal/network parameters. Because “commonly used” codes vary by country and carrier, always use codes provided by your specific mobile operator to avoid incorrect entries.
What’s the best way to find the correct MMI code for my carrier on Android?
The best approach is to search using your mobile carrier name plus the exact service (for example, “carrier USSD code voicemail” or “carrier call forwarding MMI code”). You can also check your carrier’s official website, help center, or customer support documents, which typically list working MMI codes for your region. Once you find a code, test it in the dialer and confirm the result on-screen; if it fails, don’t keep guessing—request the correct code from your operator.
📅 Last Updated: July 08, 2026 | Topic: what is mmi code on android | Content verified for accuracy and freshness.
References
- Google Scholar Google Scholar
https://scholar.google.com/scholar?q=MMI+code+on+android - Google Scholar Google Scholar
https://scholar.google.com/scholar?q=USSD+MMI+codes+GSM+specification - Google Scholar Google Scholar
https://scholar.google.com/scholar?q=Man-Machine+Interface+MMI+codes+mobile+telephony - TelephonyManager | API reference | Android Developers
https://developer.android.com/reference/android/telephony/TelephonyManager#sendUssdRequest(android.telephony.ims.UssdResponseCallback,java.lang.String,android.os.Handler - Unstructured Supplementary Service Data
https://en.wikipedia.org/wiki/Unstructured_Supplementary_Service_Data - https://en.wikipedia.org/wiki/Supplementary_service_(telephony
https://en.wikipedia.org/wiki/Supplementary_service_(telephony - https://en.wikipedia.org/wiki/GSM_supplementary_service
https://en.wikipedia.org/wiki/GSM_supplementary_service - https://www.3gpp.org/DynaReport/22030.htm
https://www.3gpp.org/DynaReport/22030.htm - Telephone number
https://en.wikipedia.org/wiki/Phone_number#Supplementary_services - https://en.wikipedia.org/wiki/Mobile_network_termination#Supplementary_services
https://en.wikipedia.org/wiki/Mobile_network_termination#Supplementary_services