I would like to intercept the Android’s OS incoming call screen and replace it with my app’s incoming call screen. However, there is no API to do so, but I know for sure it is possible as 4 different companies implemented this;
The companies I’m talking about are: Adaffix (Yellix), Vringo, WhitePages Caller ID and more. They are all cleanly replaces the OS incoming call screen with their app’s incoming call screen as the call arrives (no delay, no glitches, it is always working).
I was able to find a partial solution but this solution is not stable, as sometimes it is showing my app incoming call screen and sometimes the OS incoming call screen. each call it reacts differently.
Do you have any Idea?
You will have to overlay the native screen with a control(maybe a dialog box) when you get android.intent.action.PHONE_STATE as ringing.
You have to register a BroadcastReceiver for the action android.intent.action.PHONE_STATE.
The receiving intent will have a variable TelephonyManager.EXTRA_STATE_RINGING which will have the current state.
Let me know!