BroadcastReceiver para ACTION_MEDIA_BUTTON no funciona

Estoy escribiendo una aplicación de Android para la versión 4.0.3 (ICS) del sistema operativo Android. El problema es que no obtengo la salida de mi Log.d () en el método onReceive () del BroadcastReceiver, lo que significa que mi aplicación no está manejando correctamente la transmisión.

He leído innumerables preguntas sobre cómo ejecutar el código al hacer clic en un ACTION_MEDIA_BUTTON. Incluso he copiado y pegado el código cuando el mío no funcionó, solo para ver si funcionaría.

El ACTION_MEDIA_BUTTON que quiero manejar es elsoltero botón en los auriculares que permite a un usuario recoger / finalizar llamadas, reproducir / pausar música.En lugar de que mi aplicación maneje este botón, cuando hago clic en él, el reproductor de música de mi Nexus S Android comienza a reproducir una canción..

No he colocado mi código en otra clase, tal vez es por eso que no está funcionando.

Aquí está el código encontrado en el método onCreate () (este código específico que copié de un sitio web después de que el código que escribí no funcionó):

<code>IntentFilter mediaButtonFilter = new IntentFilter(
            Intent.ACTION_MEDIA_BUTTON);
    mediaButtonFilter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
    BroadcastReceiver brMediaButton = new BroadcastReceiver() {
        public void onReceive(Context context, Intent intent) {
            Log.d("Event", "Media button!");
            this.abortBroadcast();

            KeyEvent key = (KeyEvent) intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
            if(key.getAction() == KeyEvent.ACTION_UP) {
                int keycode = key.getKeyCode();
                if(keycode == KeyEvent.KEYCODE_MEDIA_NEXT) {
                    Log.d("TestApp", "Next Pressed");
                } else if(keycode == KeyEvent.KEYCODE_MEDIA_PREVIOUS) {
                    Log.d("TestApp", "Previous pressed");
                } else if(keycode == KeyEvent.KEYCODE_HEADSETHOOK) {
                    Log.d("TestApp", "Head Set Hook pressed");
                }
            }

        }
    };
    registerReceiver(brMediaButton, mediaButtonFilter);
</code>

Todo lo que realmente necesito probar es el KEYCODE_HEADSETHOOK, pero no está de más tener el otro código para probar, lo arreglaré una vez que pueda hacer que todo funcione correctamente.

En mi manifiesto:

<code><intent-filter android:priority="2147483647" >
            <action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</code>

Originalmente pensé que esto podría ser un problema de permisos ya que no especifiqué ningún permiso para esto, sin embargo no recibí ningún mensaje de error.

Como dije antes, he probado muchas variaciones de esto. Un ejemplo fue el uso del código en este enlace.Broadcastreceiver onReciba el problema ACTION_MEDIA_BUTTON Android Con las correcciones de CommonsWare. Una vez más, sin embargo, lo modifiqué para que no estuviera en una clase separada.

Gracias de antemano por su ayuda.

Respuestas a la pregunta(3)

Su respuesta a la pregunta