This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

NFC_T4T_EVENT_NDEF_READ event not working every time

Hello,

i am working on an app using Android to read and write an NDEF record using SDK 14 type 4 tag.

I start the process by reading the record with the following Android sequence:

Ndef ndef = Ndef.get(mTag);
ndef.connect();
NdefMessage ndefMessage = ndef.getNdefMessage();
ndef.close();

This produces an NFC_T4T_EVENT_NDEF_READ event on the Nordic side as expected.

After this, i write a record to the NRF52. The record is received. This produces an NFC_T4T_EVENT_NDEF_UPDATED event as expected.

After this, i update the record on the NRF52. Then i read the record with the exact same sequence as before. This time, no NFC_T4T_EVENT_NDEF_READ event is produced, even though my debugs in hal_nfc_t4t.c clearly show, that the record is read and sent properly to the Android device.

Is this some known feature or bug? It seems that only one NFC_T4T_EVENT_NDEF_READ event is produced per session when using Android Ndef library. After the NRF52 NFC interface has been reset, i can get one event. The record read works just fine, and the Android SW receives the correct data. Only the event is missing, which i need for my control flow.

Has anyone else encountered this problem, and found a solution or at least a workaround?

BR, tommi

Parents
  • Well, you are right that the NFC_T4T_EVENT_NDEF_READ event is produced only once per session when the last byte of NDEF message is read (the tag needs to reenter the NFC field to start the new session). We will try to improve the documentation in the next releases, because it seems to be not clear enough.

  • Thank you for your answer. This makes it clear that the event is not intended to work as the NFC_T4T_EVENT_NDEF_UPDATED event, which is produced every time the contents of a record is updated.

    Do you have any intention of making an event, that is produced when the record contents have been read, in future SDK releases? It would be helpful to know when the remote has updated the message, and i don't think it would be too hard to implement.

    I will proceed by trying to make a workaround on the smartphone for now.

    BR, tommi

Reply
  • Thank you for your answer. This makes it clear that the event is not intended to work as the NFC_T4T_EVENT_NDEF_UPDATED event, which is produced every time the contents of a record is updated.

    Do you have any intention of making an event, that is produced when the record contents have been read, in future SDK releases? It would be helpful to know when the remote has updated the message, and i don't think it would be too hard to implement.

    I will proceed by trying to make a workaround on the smartphone for now.

    BR, tommi

Children
No Data
Related