我正在开发一个NFC应用程序,它将在公共场所有标签,这样就有必要用密码或其他工具锁定标签,以避免有人删除信息或修改其内容。这些标签以后应该是可更新的。那么,有可能做到这一点吗?或者当我锁定一个标签时,它会永远保持只读状态吗?
发布于 2015-03-27 15:06:48
这在很大程度上取决于您使用的NFC标签的类型(以及价格)。典型的廉价近场通信标签(例如,类型1标签,如黄玉/宝石或类型2标签,如MIFARE Ultralight,NTAG203,Kovio 2K,或my-d近场通信)不允许这样做。它们只能是永久写保护的(这是在公共场所安装标签时通常应该做的)。
其它标签确实提供了某种形式的基于认证的访问控制,其可用于限制写访问标签存储器,例如
进行相互质询响应身份验证( implications.
认证不是NFC论坛标签操作规范的一部分,因此取决于标签/标签制造商。为了在安卓上使用这些高级功能,你需要自己实现相关的命令(使用tech.transceive()
方法)。
请注意,Android上的Ndef.makeReadOnly()
不一定要设置任何硬件锁定位。在某些情况下,该方法也可以仅在协议级上设置写保护(即,设置请求NFC设备不写入任何数据的标志,但不保护实际数据页不被重写)。
发布于 2015-03-26 21:52:15
是的,当然,但是Android API没有现成的方法来做到这一点。您必须使用APDU来控制对tag的访问。
Ndef类有一个makeReadOnly方法:http://developer.android.com/reference/android/nfc/tech/Ndef.html#makeReadOnly(),但是您不能解锁标记。
https://stackoverflow.com/questions/29278450
复制相似问题