At the moment I am developing an application which catches the action NEW_OUTGOING_CALL
with the help of a BroadcastReceiver
. I am aborting the call by calling setResultData(null)
. After that I am showing the user a dialog which allows him to decide if he wants to use my application to rewrite its number. When the users decision has happened I am placing the new call depending on the decision. Now my broadcast receiver gets called up once again.
What is the correct way of getting to know that I have already processed the number? I got a working solution that uses a timestamp to guess if it could be already processed. Another solution would be to add a "+"
at the end of the processed number.
These methods are working fine for my application being the only one catching the NEW_OUTGOING_CALL
event. But what should I do when other applications (like Sipdroid or Google Voice) are also sitting there catching the NEW_OUTGOING_CALL
broadcast aborting it and restarting it again? I don't see a possibility to get to know if we are still in the same "call flow" and if I already processed the number.
I would love to hear your ideas about this problem!