En Android, ¿cómo se registra para recibir transmisiones de auriculares?

Estoy trabajando en Android 2.1, y quiero detectar cuándo se conectan / sacan los auriculares. Soy bastante nuevo en Android.

Creo que la forma de hacerlo es utilizando un receptor de transmisión. Lo subestimé y también puse lo siguiente en mi AndroidManifest.xml. Pero, ¿tienes que registrar el receptor en otra parte, como en la actividad? Soy consciente de que hay muchos hilos en esto, pero realmente no entiendo de qué están hablando. Además, ¿cuál es la diferencia entre registrarse en AndroidManifest.xml y registrarse dinámicamente en su actividad?

<receiver android:enabled="true" android:name="AudioJackReceiver" >
        <intent-filter>
            <action android:name="android.intent.action.HEADSET_PLUG" >
            </action>
        </intent-filter>
    </receiver>

Y esta fue la implementación de la clase (más las importaciones).

public class AudioJackReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    Log.w("DEBUG", "headset state received");
}

}

Estaba intentando ver si funciona, pero no aparece nada cuando desconecto / enchufo el auricular mientras ejecuto la aplicación.

EDITAR: la documentación no dice esto, pero ¿es posible que esta no funcione si está registrada en el manifiesto? Pude hacer que respondiera cuando registré el receptor en una de mis aplicaciones (¿o tienes que hacerlo de todos modos?)

Respuestas a la pregunta(3)

Su respuesta a la pregunta