Trying to intercept outgoing calls, and have a solution working well on
You need to add the user permission:
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
See this blog post as an example of how to setup and use the NEW_OUTGOING_CALL.
Also see this blog post as to what to set your android:priority
to.
Did you tried to increase android:priority
? Let's say up to 10000.
I was intercepting incoming SMS' and increasing of android:priority
attribute was helpful
Try putting the manifest in order as suggested by Google Dev: Manifest.xml
Like this:
<uses-permission />
...
<receiver>
<intent-filter> . . . </intent-filter>
<meta-data />
</receiver>
There may be an issue in how some devices parse the Manifest and may not register the receiver correctly.
EDIT: As of ADT 16 Lint will tell you that your permissions are in the wrong place, so I'm assuming this must be more of an issue then previously thought
Cheers
I created the broadcast listener programmatically. It works fine. For your reference.
IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.NEW_OUTGOING_CALL");
receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Log.d(TAG, "onReceive, Action:" +intent.getAction());
}
};
registerReceiver(receiver, filter);