Nexus S可以写入NFC标签。如何阻止使用Nexus S的任何人覆盖您的代码?
例如。如果在发布视频的传单上贴有NFC标签,那么拥有Nexus S的人是否可以覆盖该标签并将其替换为指向其网站的链接?
在这里的初学者,只是想了解NFC,谢谢!
最佳答案
是的,许多标签类型都允许写保护,某些类型则允许全局写保护,而其他更复杂的类型则允许通过标签中的内存部分进行写保护。
当您在Android NFC应用中检测到标签时,便可以获取Tag对象并读取和写入标签,包括保护标签免于进一步写入。
所有这些都在Android开发人员网站上有关NFC类的开发人员文档中进行了描述。
例如,如果您在更高级别上工作并读/写Ndef
消息:
Ndef
或NDefFormatable
标记。您可以从传递给您的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
(包括NdefFormatable
和Ndef
),然后从基本Tag中获取这些对象以执行不同的操作,开发人员文档就不会太糟糕。关于nfc - 可以保护NFC标签不被覆盖吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5669833/