Android BroadcastReceiver not stopping Camera Intent action
<p>I am trying to 'block' the Camera action while my application is active. The <em>onReceive</em> method is being executed on the BroadcastReceiver, but by the LogCat it seems to be doing so after the Intent has already been executed.</p>

<p><strong>manifest.xml</strong></p>

<pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com" android:versionCode="1" android:versionName="1.0"&gt;
    &lt;uses-sdk android:minSdkVersion="8" /&gt;
    &lt;application android:icon="@drawable/icon" android:label="@string/app_name"
        android:screenOrientation="landscape" android:debuggable="true"
        android:clearTaskOnLaunch="true"&gt;
        &lt;receiver android:name="com.receiver.CameraReceiver"&gt;
            &lt;intent-filter&gt;
                &lt;action android:name="android.intent.action.CAMERA_BUTTON" /&gt;
            &lt;/intent-filter&gt;
        &lt;/receiver&gt;

        &lt;activity android:name=".Main" android:label="@string/app_name"&gt;
            &lt;intent-filter&gt;
                &lt;action android:name="android.intent.action.MAIN" /&gt;
                &lt;category android:name="android.intent.category.DEFAULT" /&gt;
                &lt;category android:name="android.intent.category.LAUNCHER" /&gt;
            &lt;/intent-filter&gt;
            &lt;intent-filter&gt;
                &lt;action android:name="android.media.action.IMAGE_CAPTURE" /&gt;
                &lt;category android:name="android.intent.category.DEFAULT" /&gt;
            &lt;/intent-filter&gt;
        &lt;/activity&gt;

    &lt;/application&gt;


&lt;/manifest&gt;
</code></pre>

<p><strong>com.receiver.CameraReceiver</strong></p>

<pre><code>package com.receiver;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class CameraReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.i(this.toString(), "Suck It Android!");
        abortBroadcast();
    }

    @Override
    public String toString() {
        return "com.receiver.CameraReceiver";
    }
}
</code></pre>

<p><strong>LogCat</strong></p>

<pre><code>12-03 14:47:41.171: INFO/ActivityManager(981): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x14000000 cmp=com.google.android.camera/com.android.camera.Camera }
12-03 14:47:41.288: INFO/WindowManager(981): Setting rotation to 1, animFlags=1
12-03 14:47:41.304: INFO/ActivityManager(981): Config changed: { scale=1.0 imsi=310/4 loc=en_US touch=3 keys=2/1/2 nav=2/2 orien=2 layout=34 uiMode=17 seq=30}
12-03 14:47:41.811: DEBUG/dalvikvm(981): GC_EXTERNAL_ALLOC freed 8025 objects / 388808 bytes in 208ms
12-03 14:47:41.999: DEBUG/AlarmManagerService(981): Kernel timezone updated to 300 minutes west of GMT
12-03 14:47:42.288: INFO/[com.specialed.receiver.CameraReceiver](13152): Suck It Android!
</code></pre>
