An open-source Android application to simulate incoming calls, featuring a modern Material 3 UI with dynamic Monet support.
Ever wanted to get that Feature of old Samsung phones to simulate an incoming call with audio on the originial phone app? Introducing FakeCall. Unlike other apps that merely mock a UI, this app integrates directly with the Android Telecom Framework to provide an indistinguishable calling experience. It has many features to make the call as real as possible.
Caution
This app won't work on Android 17 as of now!
This is because of google deprecating/changing Provider settings constantly.
Please help getting heard by google by going to this android issue and pressing +1.
- Original Dialer: FakeCall uses your real Phone app to simulate the incoming Call by creating a Phone Account in android's TelecomManager
- Customizable: The app lets you customize the name of the fake phone account in the settings to match your real service provider.
- Schedule: Set exact Timers for when the call should come in
- Audio Support: You can upload audio files that play when the call is answered
- Call History: Simulated calls are being shown in call history
- IVR Mode: assign audio files to keys and make sub-menus
- Recording: record microphone audio of a Fake call
- Automation API: trigger calls from Tasker, MacroDroid, or ADB via a broadcast intent
- Accessibility Shortcut: schedule a fake call from the system accessibility button using saved defaults
- Quick Trigger Presets: save up to 5 presets and expose them as launcher app actions + Quick Settings tiles
FakeCall exposes a broadcast receiver for automation apps.
Action
com.upnp.fakeCall.TRIGGER
Extras
caller_name(String, optional)caller_number(String, optional)delay(Int, optional, seconds)
If one or more extras are omitted, FakeCall falls back to the saved Automation & Quick Trigger Defaults from Settings.
ADB example (recommended, package-targeted, no -n needed)
adb shell am broadcast -a com.upnp.fakeCall.TRIGGER -p com.upnp.fakeCall --es caller_name "Boss" --es caller_number "+49123456789" --ei delay 30Windows cmd.exe (single line)
adb shell am broadcast -a com.upnp.fakeCall.TRIGGER -p com.upnp.fakeCall --es caller_name "Boss" --es caller_number "+49123456789" --ei delay 30Explicit component fallback
adb shell am broadcast -n com.upnp.fakeCall/.ExternalTriggerReceiver -a com.upnp.fakeCall.TRIGGER --es caller_name "Boss" --es caller_number "+49123456789" --ei delay 30For Tasker, MacroDroid, etc. set:
- Action:
com.upnp.fakeCall.TRIGGER - Package:
com.upnp.fakeCall
Enable the FakeCall accessibility service and assign it to the system accessibility button or shortcut. When invoked, it schedules a fake call using the saved quick-trigger defaults from Settings and shows a short confirmation toast.
You can configure these defaults inside:
Settings -> Automation & Quick Trigger Defaults
You can also save up to five quick trigger presets from the same section:
- presets appear as launcher app actions (long-press the app icon)
- presets are available as Quick Settings tiles (
FakeCall Preset 1...FakeCall Preset 5)
Mobile Development:
Build System:
UI/UX:
FakeCall/
├── .github/ # GitHub related files (e.g., issue templates, workflows) - TODO: If applicable
├── .idea/ # IntelliJ/Android Studio project configuration files
├── app/ # Main Android application module
│ ├── build.gradle.kts # Module-level Gradle build script (Kotlin DSL)
│ ├── src/ # Source code and resources
│ │ ├── main/ # Main source set (Kotlin code, resources, manifest)
│ │ └── androidTest/ # Android UI test source set
│ └── ... # Other module files
├── build.gradle.kts # Top-level Gradle build script (Kotlin DSL)
├── gradle/ # Gradle wrapper files
├── gradlew # Gradle wrapper script (for Unix/macOS)
├── gradlew.bat # Gradle wrapper script (for Windows)
├── gradle.properties # Global Gradle properties
├── settings.gradle.kts # Gradle settings file (defines project modules)
├── .gitignore # Specifies intentionally untracked files to ignore
└── README.md # This README file
We welcome contributions to FakeCall!
If you want to help translating, do it Here via crowdin
This Project is licenced under GNU General Public License. Read it Here
- AI for helping me with my poor kotlin knowledge.
- NLL Apps for telling me how this project could be implemented. (Reddit)
- If you encounter any bugs or have feature requests, please open an issue on GitHub Issues.
☕️ If you want to support me, you can do it via monero:
42eQ1sZtR1USUcGRwc4hiTLNvL7q8U9XSCVVtuhRFKKREpevd4F1X3aN8X4UzkqNTy3n4BsfUooLvj1ydjpem5Ee9SRA2dZ

⭐ Star this repo if you find it helpful!
Made with ❤️(and AI 🤖)

