Why WhoCalls doesn’t work for Xiaomi: 7 reasons and how to fix it

You install WhoCalls on your Xiaomi, Redmi or POCO, but the app doesn't detect incoming calls, doesn't show subscriber names, or doesn't start at all? This problem is familiar to thousands of users -- and it's not accidental. It's about the features of MIUI firmware, which actively blocks the background work of third-party applications, including numbering services.

In this article, we will not just list the possible causes, but give step-by-step instructions based on MIUI 12/13/14 and HyperOS versions, talk about hidden energy saving settings that interfere with WhoCalls, and offer proven alternatives. And also explain why even after all the manipulations, the application can work unstable on some models (for example, Xiaomi 13 Pro or Redmi Note 12).

1.Why WhoCalls doesn't identify Xiaomi numbers: Top reasons

The problem lies not in the application itself, but in MIUI’s energy saving policy.

  • πŸ”‹ Use constant internet access (WhoCalls checks numbers in the cloud database).
  • πŸ“ž Work with telephone functions (detection of incoming calls).
  • πŸ”„ Update the data in real time (synchronization of the database of numbers).

MIUI 14 and HyperOS also introduce new restrictions on Call Log and Phone apps, and even if you have given all permissions manually, the system can block WhoCalls through:

  • πŸ›‘οΈ Privacy Protection (Settings Settings) β†’ Confidentiality β†’ Special access).
  • ⚑ Automatic optimization (Settings menu) β†’ Battery β†’ Optimizing the battery).
  • πŸ”’ Restrictions for β€œnon-system” applications (especially relevant for models with Global applications) ROM).

Another caveat: WhoCalls may conflict with MIUI’s built-in Numbers Definition service (which runs through Mi Cloud), and if both services are active, they interfere with each other.

πŸ“Š What kind of model do you have? Xiaomi/Redmi/POCO?
Xiaomi 13/14 Series
Redmi Note 11/12
POCO F/X series
Old model (until 2020)
other

2.How to set up WhoCalls on Xiaomi: step-by-step instructions

Before you delete the app, do these steps. They work on MIUI 12-14 and HyperOS (for older versions, see the section on outdated firmware).

Step 1: Permissions for the application

Open Settings β†’ Applications β†’ Application Management β†’ WhoCalls and enable:

  • πŸ“± All permissions (especially Phone, Contacts, Call Log).
  • πŸ”„ Autorun (Battery tab in the application settings).
  • πŸ”Œ Background activity (Background Restrictions section).

Step 2: Exclusion from battery optimization

Go to Settings. β†’ Battery β†’ Battery Optimization, find WhoCalls in the list and select Unlimited. If the app isn't in the list, click β‹― β†’ Show all applications.

Step 3: Set up special access

In Settings β†’ Privacy β†’ Special access check:

  • πŸ“ž Overlays of other applications (allow for WhoCalls).
  • πŸ” Change of system settings (necessary to display notifications).
  • πŸ“Š Access to the call log (required!).

All permissions are given in the application settings |

WhoCalls excluded from battery optimization|

Autostart and background activity enabled |

The built-in MIUI | number detector is disabled

Reboot the phone after settings-->

After all the manipulations, restart the phone or the changes may not apply.

3. Conflict with the built-in MIUI number determinant

MIUI has its own numbering service, which runs through the Mi Cloud, and it can block WhoCalls because it decides that it's enough to have one service to disable the built-in identifier.

  1. Open Settings β†’ Applications β†’ Application Management.
  2. Press. β‹― β†’ Showing System Processes.
  3. Find com.android.incallui or MiuiCallUI.
  4. Turn off the number definition permission (if any).

On some firmware (for example, MIUI 14 for Redmi Note 12), this item may not be available.

  1. Go to Settings β†’ Applications β†’ Phone β†’ Storage.
  2. Click Clear Data and Clear Cache.
  3. Reset the device.
What to do if there is no "numbers definition" item?
Some firmware (especially Chinese) have this section hidden. Alternative way: 1. Install Mi Security (if removed). 2. Open Security β†’ Settings β†’ Definition of numbers and disable the function. 3. If this is not the case, you just need to roll back the firmware or use it. ADB-teams (see section below).

4. ADB-The Compulsory Work Authorization Team for WhoCalls

If standard settings don't work, you can manually give WhoCalls maximum rights through ADB (Android Debug Bridge), which works on MIUI 12-14 and HyperOS, but requires a PC connection.

Instructions:

  1. Turn on Developer Mode (7 times click on the MIUI version in Settings β†’ About Phone).
  2. Activate Debugging by USB in Settings β†’ Additional β†’ For developers.
  3. Connect your phone to your PC and execute the commands:
adb shell dumpsys deviceidle whitelist +com.whocalls.app


adb shell cmd appops set com.whocalls.app android:read_call_log allow




adb shell cmd appops set com.whocalls.app android:write_call_log allow




adb shell cmd appops set com.whocalls.app android:process_outgoing_calls allow

After you execute the commands, restart your phone. If ADB issues a device unauthorized error, confirm the debugging on your smartphone screen.

πŸ’‘

If you don't have a PC, you can use Android terminal apps like Terminal Emulator. The commands are the same, but add su before them (you need root).

5. WhoCalls Alternatives for Xiaomi: What Works Stabilly

If WhoCalls never worked, consider these apps, which are better adapted to MIUI and are less likely to be blocked by the system:

AnnexAdvantagesDeficienciesCompatibility with MIUI
GetContactLarge number database, works without SMSRegistration is required, sometimes blocked⭐⭐⭐⭐ (fine)
TruecallerGlobal base, integration with messengersLots of advertising, collects data⭐⭐⭐ (middle-of-the-road)
NumBusterEasy, without registration, Russian-language baseLess defines numbers⭐⭐⭐⭐⭐ (fine)
CallAppCall recording + determinantPaid features heavy for weak devices⭐⭐⭐ (middle-of-the-road)

NumBuster delivers better results on Xiaomi thanks to minimal background requirements and no conflicts with MIUI. If privacy is important to you, look for Call Blocker (no cloud base, but with manual numbering).

6. Frequent mistakes and how to avoid them

Even after you set up the right WhoCalls may not work properly, and here are some common user errors:

⚠️ If WhoCalls stopped identifying numbers after the update MIUI, Reset the application settings (Settings) β†’ Annexes β†’ WhoCalls β†’ Warehouse β†’ Clear the data) and reset from scratch. Updates often reset permissions.

  • πŸ”Œ Even if WhoCalls are exempt, the general Power Saving or Super Saving mode can block it. β†’ Battery.
  • πŸ“΅ WhoCalls checks the numbers online - if there is no network at the time of the call (for example, on the subway), the determination will not work.
  • πŸ”„ An outdated version of the app. MIUI 14 and HyperOS older versions of WhoCalls (until 2023) may not work.Update app on Google Play.
  • πŸ“± Conflict with other determinants. If you have Truecaller, GetContact and WhoCalls installed at the same time, they'll interfere with each other.

Another common problem is, WhoCalls detects numbers, but it doesn't show notifications.

  1. Open Settings β†’ Notifications β†’ WhoCalls.
  2. Enable Display Notifications and Importance: High.
  3. In the Notification Categories section, activate Incoming Calls.

7. WhoCalls on older versions of MIUI (up to 12th)

If you have a smartphone on MIUI 10–11 (like the Redmi Note 8 or Xiaomi Mi 9), the WhoCalls setting has nuances:

  • πŸ”§ These versions don't have a Special Access section. Instead, give WhoCalls permission to Change System Settings through Settings. β†’ Permits β†’ Other permits.
  • πŸ”‹ Battery optimization is configured in Settings β†’ Battery β†’ Select Mode (Select No Limits for WhoCalls).
  • πŸ“ž Built-in number detector is disabled through Settings β†’ System applications β†’ Phone. β†’ Definition of numbers.

On MIUI 9 and below, WhoCalls may not work at all due to outdated APIs.

  • Update the firmware to MIUI 12+ (if possible).
  • Use NumBuster – it is less demanding on the Android version.
  • Install custom firmware (e.g. Pixel Experience) if you are an experienced user.

πŸ’‘

On Xiaomi with older firmware (before MIUI 12), WhoCalls will run unstablely or won't launch at all.

FAQ: Frequent WhoCalls questions on Xiaomi

❓ Why WhoCalls only works through VPN?
In some regions (e.g. Russia), WhoCalls can block access to its database without a VPN, due to provider restrictions or the application itself. Try connecting to a VPN (e.g., ProtonVPN or Warp) and check WhoCalls again. If the VPN is disabled, the number determination stops, the problem is on the WhoCalls server side.
❓ Can WhoCalls be made a system application on Xiaomi?
Technically yes, but it requires root access or custom recovery (e.g., root access, TWRP). Without root rights, you can't do WhoCalls without root rights. ADB-commands for maximum resolutions (see section 4). ⚠️ Warning! Turning WhoCalls into a system app can lead to unstable phone performance, especially on HyperOS.
❓ Why WhoCalls doesn't define numbers with code +7, but works with +380?
This is due to regional settings of the WhoCalls database. The application may have incomplete data for Russian numbers (+7) due to sanctions or restrictions. Solutions: Check the region in the WhoCalls settings (should be Russia or CIS); Update the number database manually in the app menu. Use alternatives like NumBuster or GetContact, which have a more complete base for +7.
❓ How to transfer WhoCalls to the new Xiaomi?
WhoCalls doesn’t have a built-in export base, but you can transfer data via backup: On your old phone: WhoCalls Settings β†’ Backup β†’ Save to Google Drive. On your new phone: install WhoCalls, log in to the same Google account and recover data. If this doesn’t work, try copying /Android/data/com.whocalls.app through the file manager (root needed).
❓ WhoCalls eats battery on Xiaomi.How to reduce consumption?
WhoCalls can consume up to 5-10% charge per day due to constant number checks.To reduce consumption: Turn off Autobase Update in the app settings. Set the sync interval 1 time per day (instead of Constant). Disable SMS Definition if you do not use this feature. Add WhoCalls to Background Limitation (but then the definition will only work when the application is open).