我正在开发一个在公共场所有标签的NFC应用程序,这样就有必要使用密码或其他工具锁定标签,以避免有人删除信息或修改其内容。标签应该可以在以后更新。那么,有可能做到这一点吗?或者当我锁定标签时,它是否会永久保持只读状态?
答案 0 :(得分:5)
这在很大程度上取决于您使用的NFC标签的类型(以及相应的价格)。典型的廉价NFC标签(例如像Topaz / Jewel的Type 1标签或MIFARE Ultralight,NTAG203,Kovio 2K或my-d NFC等Type 2标签)不允许这样做。它们只能永久写保护(这是您在公共场所安装标签时通常应该执行的操作)。
其他标签确实提供了一些基于身份验证的表单访问控制,可用于限制写访问标记内存,例如
身份验证不是NFC论坛标签操作规范的一部分,因此依赖于标签/标签制造商。要在Android上使用此类高级功能,您需要自己实现相关命令(使用tech.transceive()
方法)。
请注意,Android上的Ndef.makeReadOnly()
不一定会设置任何硬件锁定位。在某些情况下,此方法也可以仅在协议级别上设置写保护(即设置请求NFC设备不写入任何数据的标志,但不保护实际数据页不被覆盖)。
答案 1 :(得分:0)
当然可以,但Android API没有现成的方法来执行此操作。 您必须使用APDU来控制对标记的访问。
Ndef类有一个makeReadOnly方法:http://developer.android.com/reference/android/nfc/tech/Ndef.html#makeReadOnly()但你无法解锁标记。