我正在尝试编写一个Android应用程序,它有两个活动,将多个值(字符串/文本)写入同一个NFC标记。我已设法将一个活动写入标记,但如何阻止第二个活动覆盖第一个活动的值?
const first = () => {
const greet = "Hi";
const second = () => {
alert("greet");
}
return second;
}
first()(); // does work
//Alternative
const secondTime = () => {
const greet = "Hi";
const second = () => {
alert("greet");
}
return second();
}
secondTime();
有办法吗?
答案 0 :(得分:0)
NFC论坛类型标记只能包含一条NDEF消息。因此,方法ndef.writeNdefMessage(ndefMessage)
将始终覆盖任何现有的NDEF消息,并将新消息作为参数ndefMessage
传递。
当然,NDEF消息可能包含您喜欢的NDEF记录(或者实际上适合您的标记)。
如果您想保留现有数据,则需要首先阅读现有的NDEF消息,例如由
Parcelable[] parcelables = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
if (parcelables != null && parcelables.length > 0) {
NdefMessage ndefMessage = (NdefMessage)parcelables[0];
...
然后,您可以解析此消息并保留/删除要保留/删除的部分(NDEF记录或数据元素)。最后,您可以将新部件添加到该消息中,然后再将整个消息写入标签。