java - How to write data as multiple records on NFC tag in Android? -
i followed this write data nfc tag.
this mainactivity , nfcmanager.
i write data nfc tag.
but placing data in record 0
only. there no other records created on tag.
however, want place data multiple records record 0
, record 1
, record 2
, record 3
.
so modified mainactivity
this
@override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); nfcmger = new nfcmanager(this); v = findviewbyid(r.id.mainlyt); final edittext et0 = (edittext) findviewbyid(r.id.cnt0); final edittext et1 = (edittext) findviewbyid(r.id.cnt1); final edittext et2 = (edittext) findviewbyid(r.id.cnt2); final edittext et3 = (edittext) findviewbyid(r.id.cnt3); floatingactionbutton btn = (floatingactionbutton) findviewbyid(r.id.fab); btn.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { string ct0 = et0.gettext().tostring(); string ct1 = et1.gettext().tostring(); string ct2 = et2.gettext().tostring(); string ct3 = et3.gettext().tostring(); message = nfcmger.createurimessage(ct0, "id"); message = nfcmger.createurimessage(ct1, "name"); message = nfcmger.createurimessage(ct2, "role"); message = nfcmger.createurimessage(ct3, "level"); if (message != null) { dialog = new progressdialog(mainactivity.this); dialog.setmessage("tag nfc tag please"); dialog.show(); } } }); }
but when use , write data tag stores record 0
on tag. there no other record.
i last saved data in record 0
:
my expectation write data multiple records this:
can suggest me how insert data multiple records (record 0
, record 1
, record 2
, record 3
)?
update
with reference of user@michael roland have updated code got error
here followed method ndefrecord.createtextrecord(“en” , “string”) not working below api level 21 , have given ndefrecord
method showing error when give same message = new ndefmessage(new ndefrecord[] {
so out side message not error want inside message
thanks @michael roland support
you find 1 message containing 1 record on tag because that's in code. here create 1 ndef message containing 1 uri record:
message = nfcmger.createurimessage(ct0, "id");
right on next line overwrite stored message (referenced in message
) ndef message containing 1 uri record:
message = nfcmger.createurimessage(ct1, "name");
and on next 2 lines same thing again:
message = nfcmger.createurimessage(ct2, "role"); message = nfcmger.createurimessage(ct3, "level");
consequently, last line store ndef message in message
.
you store message onto tag1.
however, given above screenshot, rather want create 1 ndef message containing 4 text records. e.g. this:
message = new ndefmessage(new ndefrecord[] { ndefrecord.createtextrecord("en", "text 1"), ndefrecord.createtextrecord("en", "text 2"), ndefrecord.createtextrecord("en", "text 3"), ndefrecord.createtextrecord("en", "text 4"), });
btw. since createtextrecord()
available starting api level 21, might want check out method ndefrecord.createtextrecord("en" , "string") not working below api level 21 lower api levels.
also note text records intended storing human-readable textual data. storing machine-readable information, other records (such nfc forum external type) more suitable.
1) though, seem rather reluctant present mcve believe readers of question want browse through tons of unnecessary code on github understand problem. note that code might not exist whole lifetime of question , once source code disappears, question useless others.
finally, note if observed 1 record of type text/plain textual value "junior" on tag, did not use code github without further modifications since code revealed have created 1 (malformed?) uri record.
Comments
Post a Comment