O Android BroadcastReceiver não se registra

Estou tentando adicionar um receptor de transmissão simples ao meu aplicativo de áudio, para que eu possa silenciar tudo quando o usuário clicar em ACTION_MEDIA_BUTTON no fone de ouvido. Eu li que você pode registrá-lo no manifesto ou dinamicamente no código. Eu segui o caminho de registrá-lo no código, pois preciso chamar métodos dentro da minha classe de atividade principal para reagir ao pressionar o botão de mídia. Por alguma razão, no entanto, meu BroadcastReceiver simplesmente não se registra e não consigo encontrar nada que explique o motivo (cabelos grisalhos aumentando).

A seguir, é o que eu tenho no 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);

    }
};

Estou certo de que o BroadcastReceiver não se registra, pois agrupar o registro como abaixo me dá um brinde confirmando que é 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();
  }

EDIT: Eu também tentei o seguinte com base em sugestões até agora:

Lendo através de -http://developer.android.com/training/managing-audio/volume-playback.html Tentei registrar meu receptor no manifesto assim ...

<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);

O Eclipse reclamou que o mContext não resolveu nada, então adicionei o seguinte:

private Context mContext;

Em seguida, reclamou da parte "mContext.getSystemService (Context.AUDIO_SERVICE)", dizendo "Incompatibilidade de tipo: não é possível converter de Object para AudioManager"

Então, adicionei um elenco ao AudioManager:

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

E, em seguida, adicionou o código de registro do receptor sugerido:

am.registerMediaButtonEventReceiver(MediaButtonIntentReceiver);

Ao qual se queixou de "registerMediaButtonEventReceiver" dizendo "O método registerMediaButtonEventReceiver (ComponentName) no tipo AudioManager não é aplicável aos argumentos (BroadcastReceiver)"

Claramente, estou fazendo algo errado aqui. Digitei o código de exemplo, como mostrado, mas ele nem compila.

--- END EDIT -----------------------------

Esperando que alguém lá fora possa me ajudar. Entre em contato se precisar fornecer mais alguma coisa.

questionAnswers(1)

yourAnswerToTheQuestion