Trying to intercept outgoing calls, and have a solution working well on
But not on the Samsung Galaxy S running 2.1, anyone seen this?
<receiver android:name="com.mypackge.OutGoingCallDetection"
android:exported="true">
<intent-filter>
<action
android:name="android.intent.action.NEW_OUTGOING_CALL"
android:priority="0" />
</intent-filter>
</receiver>
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
Update: the PROCESS_OUTGOING_CALLS is also added.
The receiver:
public class OutGoingCallDetection extends BroadcastReceiver {
private static final String TAG = "OutGoingCallDetection";
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Log.d(TAG, "onReceive, Action:" +intent.getAction());
}
}
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
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With