【问题标题】:How to erase NDEF messages from NFC tag?如何从 NFC 标签中删除 NDEF 消息?
【发布时间】:2014-09-16 14:17:50
【问题描述】:

我正在研究 NFC。我可以在标签上写消息。一切正常,但是当我尝试擦除标签时,它不起作用,我不知道为什么。这是我的代码:

Tag mytag = getIntent().getParcelableExtra(NfcAdapter.EXTRA_TAG);
NdefFormatable formatable = NdefFormatable.get(mytag);

if (formatable != null) {
        formatable.connect();
        formatable.format(methodGetMsg());
        formatable.close();
}

我总是得到可格式化的值null

【问题讨论】:

标签: android nfc ndef


【解决方案1】:

由于您的标签已经列出了 android.nfc.tech.Ndef 技术,它已经准备好存储 NDEF 消息,不需要进一步格式化。您可以使用 Ndef 对象的 writeNdefMessage() 方法简单地覆盖(假设标签不是只读的)任何现有的 NDEF 消息。例如。要将标签“格式化”为空的 NDEF 消息,您可以执行以下操作:

Ndef ndefTag = Ndef.get(tag);
ndefTag.writeNdefMessage(new NdefMessage(new NdefRecord(NdefRecord.TNF_EMPTY, null, null, null)));

取自here

【讨论】:

  • 请注意,这只会覆盖 NDEF 消息的前几个字节。使用一些技巧,您可以恢复几乎所有被覆盖的 NDEF 消息。要真正覆盖所有数据,最好先将最大大小的 NDEF 消息写入标签。
  • @NilsPipenbrinck 如果可能的话,用您的评论编辑答案。谢谢
  • 新的 NdefMessage 与单个记录至少需要 API 16。最好用这个:stackoverflow.com/a/20144010/1199132
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-18
  • 1970-01-01
  • 2013-07-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多