NFC broadcastreceiver problem

Quiero que mi aplicación escuche etiquetas nfc solo cuando esté activada. Para esto intenté registrar un oyente nfc como sigue, sin ningún éxito.

IntentFilter filter = new IntentFilter("android.nfc.action.TECH_DISCOVERED"); 
registerReceiver(nfcTagListener, filter); 

BroadcastReceiver nfcTagListener = new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) { 
            String action = intent.getAction(); 

            if (NfcAdapter.ACTION_TECH_DISCOVERED.equals(action)) { 
                Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);  
                Log.d("nfc", "" + tag.getId());     
            }
        }
    };

Intenté también declarar la intención en mi manifiesto siguiendo los apidemos y funciona perfectamente, inicia mi actividad y obtiene la identificación de la etiqueta nfc. Pero esto no es lo que quiero, quiero detectar la identificación de la etiqueta solo cuando estoy dentro de esa actividad. Estoy pensando que podría estar relacionado con la siguiente línea incluida en las demostraciones de la API. Pero no sé cómo hacerlo programáticamente

      <meta-data android:name="android.nfc.action.TECH_DISCOVERED"
            android:resource="@xml/filter_nfc"> 

¿Alguna pista?

¡Gracias

Respuestas a la pregunta(2)

Su respuesta a la pregunta