Nexus S 可以写入 NFC 标签。你如何阻止任何拥有 Nexus S 的人覆盖你的标签?
例如。如果您在启动视频的传单上有一个 NFC 标签,拥有 Nexus S 的人可以覆盖它并用指向他的网站的链接替换它吗?
这里是初学者,只是想掌握 NFC,谢谢!
Nexus S 可以写入 NFC 标签。你如何阻止任何拥有 Nexus S 的人覆盖你的标签?
例如。如果您在启动视频的传单上有一个 NFC 标签,拥有 Nexus S 的人可以覆盖它并用指向他的网站的链接替换它吗?
这里是初学者,只是想掌握 NFC,谢谢!
是的,许多标签类型允许写保护,一些是全局的,而其他更复杂的是标签内的内存部分。
当您在 Android NFC 应用程序中检测到您的标签时,您可以获取一个标签对象并读取和写入标签,包括保护它免于进一步写入。
这在 Android 开发者网站上的 NFC 类的开发者文档中都有描述。
例如,如果您在更高级别工作并读/写Ndef
消息:
设置一个意图过滤器(在代码或清单中),以便您检测Ndef
或NDefFormatable
标记。您可以Tag
从Intent
传递给您的对象中获取一个对象(在onCreate()
或中onNewIntent()
)。
Tag tag = intent.getParcelableExtra( NfcAdapter.EXTRA_TAG );
从您Tag
尝试从意图中获取Ndef
标记对象。
如果成功从标签中获取Ndef
对象,则检查它是否可写,检查它是否有足够的空间,写入它然后使用makeReadOnly()
of Ndef
...。
如果获取Ndef
对象失败(异常),那么您将需要首先格式化标签....所以...NdefFormattable
从检测到的对象中获取一个对象Tag
并向其写入消息并保护它,使用formatReadOnly(NdefMessage firstMessage)
, 或者只是格式化它然后继续代码以获取Ndef
...
如果你不能得到一个NdefFormattable
对象,那么就出现了严重错误,因为那是你在过滤器中要求的。如果它已经是只读的,格式化可能会失败。
开发人员文档还不错,一旦您开始设置IntentFilter
“标签技术”(包括NdefFormatable
and Ndef
),然后从基本标签中获取这些对象以执行不同的操作。
是的,您可以写保护(大多数)标签,这会阻止其他人覆盖您的内容。如果你只是想写一个标签,一个好的安卓应用是NXP tagwriter,它有多种编码选项和写保护选项。
如果您想做到只有您可以控制标签的内容,请尝试使用 NFCLabels 标签管理器应用程序。您的标签内容存储在“云”中,您可以通过您的帐户访问您的标签。因此,您可以对标签进行写保护,这样 Joe Schmoe 就无法爆破您的内容,但您仍然可以根据需要自由更新标签。它还为您提供了一些基本的参与度分析。他们的 youtube 视频展示了它是如何工作的(见上面的链接。)
几乎所有的 nfc 标签都可以通过锁定位进行保护,您可以使用 NXP tagwriter、tasklauncher 等应用程序编写 NFC 标签,确保您选择了只读选项进行编码。注意如果标签是只读的,则不能再次重写。对于应用程序或 nfc 标签,请访问geenfc网站了解详细信息。
一些 NFC 标签可以配置为只读。有些购买时已经包含您的数据,并设置为只读。 http://www.radio-electronics.com/info/wireless/nfc/near-field-communications-tags-types.php