【发布时间】:2020-12-13 10:35:50
【问题描述】:
我正在 Android 中开发一个关于 NFC 标签的应用程序。当我使用 IsoDep 和 APDU 将空的 NdefMessage 写入 NFC 标签时,我是否会在收到新意图时能够接收 NDEF_DISCOVERED 意图?
目前我只会得到一个 ACTION_TECH 意图,我想知道写入的 APDU 是否错误,或者当写入一个空的 NDEFMESSAGE 时,是否 NDEF_DISCOVERED 是不可能的。
【问题讨论】:
我正在 Android 中开发一个关于 NFC 标签的应用程序。当我使用 IsoDep 和 APDU 将空的 NdefMessage 写入 NFC 标签时,我是否会在收到新意图时能够接收 NDEF_DISCOVERED 意图?
目前我只会得到一个 ACTION_TECH 意图,我想知道写入的 APDU 是否错误,或者当写入一个空的 NDEFMESSAGE 时,是否 NDEF_DISCOVERED 是不可能的。
【问题讨论】:
确实没有空的NdefMessage 和NdefMessage 这样的东西,实际上只是一个格式正确的NdefRecords 数组
如果您阅读了 NDef 规范 https://github.com/haldean/ndef/blob/master/docs/NFCForum-TS-NDEF_1.0.pdf
消息只是一系列 Ndef 记录,第一个记录设置了“消息开始”记录标志,最后一个设置了“消息结束”记录标志。
如果你查看Android源代码https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/nfc/NdefMessage.java#63
如果数组中有零条记录,则 NdefMessage 为空。
因此,您正在向 Tag 写入零字节,Android NFC 系统 App 无法将其识别为非空白 Tag。
【讨论】: