首先,不存在点对点 NFC 标签之类的东西。设备可以是点对点设备或 NFC 标签,但不能同时是两者。(请注意,设备仍然可以支持两种模式,但不能同时在两种模式下通信。)
因此,如果您使用 NFC 标签(如您的 NFC Forum Type 4 标签)进行通信,则不涉及点对点模式(因此不涉及 Beam)。在 Android 上,您可以使用 NFC 标签或非接触式智能卡进行通信(真正的双向通信)。
如果是您的 Type 4 标签,您将首先在发现标签时检索 NFC 意图。您可以通过在应用程序的清单中注册特定的 NDEF 记录或标签类型或使用前台调度系统(即,如果您想在您的活动已经在前台时检测标签)来做到这一点。下一步是Tag
从意图中获取标签句柄(对象):
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
那么对于 Type 4 标签,您有两个选项。如果您想使用 NDEF 消息读/写操作与标签通信,您将获得Ndef
标签的对象:
Ndef ndefTag = Ndef.get(tag);
然后,您可以使用connect()
方法连接到标签,从标签getNdefMessage()
中读取当前的 NDEF 消息,以及将writeNdefMessage(...)
新的 NDEF 消息写入标签的方法。
或者,如果您想与标签执行低级通信,您可以使用该IsoDep
技术进行连接:
IsoDep isoDep = IsoDep.get(tag);
您可以使用connect()
连接到标签的transceive(...)
方法和与标签交换 ISO 7816-4 APDU(或可能的专有命令)的方法。