NFC broadcastreceiver problem

Quero que meu aplicativo ouça as tags nfc apenas quando estiver ativado. Por isso, tentei registrar um ouvinte nfc da seguinte maneira, sem nenhum sucess

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

Eu tentei também declarar a intenção no meu manifesto após os apidemos e funciona perfeitamente, inicia minha atividade e obtém o ID da tag nfc. Mas não é isso que eu quero, quero detectar o ID da tag apenas quando estiver dentro dessa atividade. Eu estou pensando que isso pode estar relacionado à seguinte linha incluída nas demos da API. Mas eu não sei como fazer isso programaticamente

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

Alguma dica?

Obrigado

questionAnswers(2)

yourAnswerToTheQuestion