Nexus S可以写入NFC标签。如何阻止使用Nexus S的任何人覆盖您的代码?

例如。如果在发布视频的传单上贴有NFC标签,那么拥有Nexus S的人是否可以覆盖该标签并将其替换为指向其网站的链接?

在这里的初学者,只是想了解NFC,谢谢!

最佳答案

是的,许多标签类型都允许写保护,某些类型则允许全局写保护,而其他更复杂的类型则允许通过标签中的内存部分进行写保护。

当您在Android NFC应用中检测到标签时,便可以获取Tag对象并读取和写入标签,包括保护标签免于进一步写入。

所有这些都在Android开发人员网站上有关NFC类的开发人员文档中进行了描述。

例如,如果您在更高级别上工作并读/写Ndef消息:

  • 设置一个意图过滤器(在代码或 list 中),以便您检测NdefNDefFormatable标记。您可以从传递给您的Tag中获得一个Intent对象(在onCreate()onNewIntent()中)。
    Tag tag = intent.getParcelableExtra( NfcAdapter.EXTRA_TAG );
    
  • 从您的Tag中尝试从意图中获取 Ndef 标签对象。
  • 如果成功从标记中获取了Ndef对象,则检查它是否可写,检查它是否有足够的空间,写入它,然后使用makeReadOnly()Ndef...。
  • 如果获取Ndef对象失败(异常),则需要首先格式化标签.... so ...
    使用NdefFormattable从检测到的Tag中获取一个 formatReadOnly(NdefMessage firstMessage) 对象,并向其写入消息并对其进行保护,或者仅对其进行格式化,然后继续执行代码以获取Ndef ...
  • 如果无法获取NdefFormattable对象,则说明存在严重错误,因为这是您在过滤器中要求的。如果格式已经是只读的,则格式化可能会失败。

  • 一旦您开始着手通过“Tag Technology”设置IntentFilter(包括NdefFormatableNdef),然后从基本Tag中获取这些对象以执行不同的操作,开发人员文档就不会太糟糕。

    关于nfc - 可以保护NFC标签不被覆盖吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5669833/

    10-09 13:32