NFC/NfcReadNdefSmartTag/src/nfc/sample/Ndef/Read/NdefListenerManager.java
/*
     * This registers with the NFC Reader Writer Manager indicating our interest in receiving notification when Smart Tags come
     * within range of the NFC antenna
     */
This registers with the NFC Reader Writer Manager indicating our interest in receiving notification when Smart Tags come
within range of the NFC antenna
This registers with the NFC Reader Writer Manager indicating our interest in receiving notification when Smart Tags come within range of the NFC antenna
public void registerListener(NfcReadNdefSmartTagListener listener) {
        ReaderWriterManager nfcManager;
        Utilities.log("XXXX NfcReadNdefSmartTag about to add NDEF Message Listener");
        try {
            nfcManager = ReaderWriterManager.getInstance();
            /*
             * An NDEF record always contains:
             * 
             * * 3-bit TNF (Type Name Format) field: Indicates how to
             *   interpret the type field 
             * * Variable length type: Describes
             *   the record format 
             * * Variable length ID: A unique identifier
             *   for the record 
             * * Variable length payload: The actual data
             *   payload
             * 
             * The underlying record representation may be chunked across
             * several NDEF records when the payload is large.
             * 
             * NDEFRecord.TNF_WELL_KNOWN - indicates that we are interested
             * in NDEF records of Type Name Format (TNF): "WELL_KNOWN"
             * 
             * TNF_WELL_KNOWN included NFC RTD (Record Type Definitions)
             * types such as RTD_TEXT and RTD_URI meaning that they will
             * contain URIs or TEXT suitably encoded according to the NFC
             * RTD specification
             * 
             * "Sp" identifies the record type as Smart Poster - so we're
             * only interested in being notified of Smart Poster records
             * that contain plain text or URIs
             * 
             * The final parameter "true" identifies that the application
             * will be auto-started if it is not currently running when a
             * smart tag is brought within range of the NFC antenna.
             * 
             * This setting is persistent across device power resets.
             * 
             * When the application is restarted automatically on
             * presentation of a suitable smart tag to the device the
             * application will be re-started but it is necessary to
             * re-establish the NDEFMessageListener.
             * 
             * Upon registering the listener again the tag that caused the
             * application to be re-started is immediately presented to the
             * listener making what is really a two stage process seem
             * seamless.
             * 
             * It is important to re-start the listener within about 15 seconds
             * of the application being autostarted. Failure to do so will
             * result in the queued message being lost.
             * 
             * There is also no way to determine if the application was 
             * autostarted should you wish to automatically restart the 
             * listener in this case. Of course you could always leave your
             * own tracks in the sand using the Persistent Store.
             * 
             * This behaviour suggests that using the autostart option whilst
             * managing the setting up of the listener via the UI is a combination
             * that can lead to unexpected behaviour.
             * 
             */
            nfcManager.addNDEFMessageListener(listener,
                    NDEFRecord.TNF_WELL_KNOWN, "Sp", true);
            Utilities.log("XXXX NfcReadNdefSmartTag add NDEF Message Listener success");
            rts.replace(Constants.LISTENER_STATE_TOKEN, new Boolean(true));
            ListenerControlScreen.getInstance().setLed();
        } catch (NFCException e) {
            e.printStackTrace();
            Utilities.log("XXXX NfcReadNdefSmartTag NFCException on register");
        }
    }
public void registerListener ( NfcReadNdefSmartTagListener listener ) { ReaderWriterManager nfcManager ; Utilities . log ( "XXXX NfcReadNdefSmartTag about to add NDEF Message Listener" ) ; try { nfcManager = ReaderWriterManager . getInstance ( ) ; /*
             * An NDEF record always contains:
             * 
             * * 3-bit TNF (Type Name Format) field: Indicates how to
             *   interpret the type field 
             * * Variable length type: Describes
             *   the record format 
             * * Variable length ID: A unique identifier
             *   for the record 
             * * Variable length payload: The actual data
             *   payload
             * 
             * The underlying record representation may be chunked across
             * several NDEF records when the payload is large.
             * 
             * NDEFRecord.TNF_WELL_KNOWN - indicates that we are interested
             * in NDEF records of Type Name Format (TNF): "WELL_KNOWN"
             * 
             * TNF_WELL_KNOWN included NFC RTD (Record Type Definitions)
             * types such as RTD_TEXT and RTD_URI meaning that they will
             * contain URIs or TEXT suitably encoded according to the NFC
             * RTD specification
             * 
             * "Sp" identifies the record type as Smart Poster - so we're
             * only interested in being notified of Smart Poster records
             * that contain plain text or URIs
             * 
             * The final parameter "true" identifies that the application
             * will be auto-started if it is not currently running when a
             * smart tag is brought within range of the NFC antenna.
             * 
             * This setting is persistent across device power resets.
             * 
             * When the application is restarted automatically on
             * presentation of a suitable smart tag to the device the
             * application will be re-started but it is necessary to
             * re-establish the NDEFMessageListener.
             * 
             * Upon registering the listener again the tag that caused the
             * application to be re-started is immediately presented to the
             * listener making what is really a two stage process seem
             * seamless.
             * 
             * It is important to re-start the listener within about 15 seconds
             * of the application being autostarted. Failure to do so will
             * result in the queued message being lost.
             * 
             * There is also no way to determine if the application was 
             * autostarted should you wish to automatically restart the 
             * listener in this case. Of course you could always leave your
             * own tracks in the sand using the Persistent Store.
             * 
             * This behaviour suggests that using the autostart option whilst
             * managing the setting up of the listener via the UI is a combination
             * that can lead to unexpected behaviour.
             * 
             */ nfcManager . addNDEFMessageListener ( listener , NDEFRecord . TNF_WELL_KNOWN , "Sp" , true ) ; Utilities . log ( "XXXX NfcReadNdefSmartTag add NDEF Message Listener success" ) ; rts . replace ( Constants . LISTENER_STATE_TOKEN , new Boolean ( true ) ) ; ListenerControlScreen . getInstance ( ) . setLed ( ) ; } catch ( NFCException e ) { e . printStackTrace ( ) ; Utilities . log ( "XXXX NfcReadNdefSmartTag NFCException on register" ) ; } }
This registers with the NFC Reader Writer Manager indicating our interest in receiving notification when Smart Tags come
 within range of the NFC antenna
This registers with the NFC Reader Writer Manager indicating our interest in receiving notification when Smart Tags come within range of the NFC antenna