Android BroadcastReceiver no se registrará

Estoy tratando de agregar un receptor de transmisión simple a mi aplicación de audio, para poder silenciar todo cuando el usuario hace clic en su ACTION_MEDIA_BUTTON en sus auriculares. He leído que puedes registrarlo en el manifiesto o dinámicamente en el código. He seguido el camino de registrarlo en el código, ya que necesito llamar a métodos dentro de mi clase de actividad principal para reaccionar a la presión del botón multimedia. Sin embargo, por alguna razón, mi BroadcastReceiver simplemente no se registrará, y no puedo encontrar nada que explique por qué (aumento de canas).

Lo siguiente es lo que tengo en MainActivity.java:

public class MainActivity extends Activity {

  public IntentFilter intentFilter = new IntentFilter(Intent.ACTION_MEDIA_BUTTON);

  public BroadcastReceiver MediaButtonIntentReceiver =
            new BroadcastReceiver() {
                @Override
                public void onReceive(Context context, Intent intent) {

                    String intentAction = intent.getAction();
                    if (Intent.ACTION_MEDIA_BUTTON.equals(intentAction)) {
                        KeyEvent event = (KeyEvent) intent
                                .getParcelableExtra(Intent.EXTRA_KEY_EVENT);
                        int action = event.getAction();
                        if (action == KeyEvent.ACTION_DOWN) {

                            Log.e("INFO", "Media Button Pressed");
                            MuteAll();

                        }


                }
           }
  };

  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);       

      // Register media button event receiver
      intentFilter.addAction("android.intent.action.ACTION_MEDIA_BUTTON");
      intentFilter.setPriority(10000);
      this.registerReceiver(MediaButtonIntentReceiver, intentFilter);

      }

@Override
protected void onDestroy() {
    super.onDestroy();

    // Unregister media button event receiver
    unregisterReceiver(MediaButtonIntentReceiver);

    }
};

Estoy seguro de que BroadcastReceiver no se registra, ya que envolver el registro a continuación me brinda un brindis que confirma que es nulo:

  if (registerReceiver(MediaButtonIntentReceiver, intentFilter) == null) 
  {
      Toast.makeText(this, "Could not register receiver", Toast.LENGTH_LONG).show();
  } else {
      Toast.makeText(this, "Receiver registered", Toast.LENGTH_LONG).show();
  }

EDITAR: También he intentado lo siguiente basado en sugerencias hasta ahora:

Leyendo a través dehttp://developer.android.com/training/managing-audio/volume-playback.html Intenté registrar mi receptor dentro del manifiesto así ...

<receiver android:name="com.mydomain.myapp.MainActivity$MediaButtonIntentReceiver">
    <intent-filter>
        <action android:name="android.intent.action.MEDIA_BUTTON" />
    </intent-filter>
</receiver>

And then added the following example code:
public AudioManager am = mContext.getSystemService(Context.AUDIO_SERVICE);
...
// Start listening for button presses
am.registerMediaButtonEventReceiver(RemoteControlReceiver);

Eclipse se quejó de que mContext no se resolvió en nada, así que agregué lo siguiente:

private Context mContext;

Luego se quejó de la parte "mContext.getSystemService (Context.AUDIO_SERVICE)", diciendo "No coinciden los tipos: no se puede convertir de Object a AudioManager"

Entonces agregué un elenco a AudioManager:

public AudioManager am = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);

Y luego agregó el código de registro del receptor sugerido:

am.registerMediaButtonEventReceiver(MediaButtonIntentReceiver);

A lo que se quejó de "registerMediaButtonEventReceiver" diciendo "El método registerMediaButtonEventReceiver (ComponentName) en el tipo AudioManager no es aplicable para los argumentos (BroadcastReceiver)"

Claramente estoy haciendo algo mal aquí. Ingresé su código de ejemplo como se muestra, pero ni siquiera se compila.

--- FIN EDITAR -----------------------------

Esperando que alguien pueda ayudarme. Avíseme si necesito proporcionar algo más.

Respuestas a la pregunta(1)

Su respuesta a la pregunta