NFC和NDEF之间到底是什么关系?是否有任何 NFC 设备必须始终具有 NDEF 格式的数据?或者有可能有 NFC 而没有 NDEF(虽然我认为反之亦然是不可能的,是吗?)?一张空的 NFC 卡会是什么样子?它是否仍然具有 NDEF header 信息但没有有效负载?或者标签是否可能完全为空,即也没有任何标题信息?在这种情况下,安卓手机或读卡器还能检测到吗?究竟是什么让标签被阅读器检测到?
最佳答案
在NFC通信中主要有三种操作模式
NFC 的基础是天线耦合,每当一个 NFC 设备靠近另一个天线耦合发生时,有一个多协议(protocol)射频前端 IC 芯片连接到读写器设备,另一个设备可以是读写器设备或简单的一个NFC 标签(nfc 标签只不过是天线和数据存储器)。只有通过 ISO?IEC 18092 和 ISO/IEC 14443 协议(protocol)时才会进行通信,否则不会进行通信。
NFC和NDEF到底是什么关系?
在android中,所有NFC设备都被检测并作为PICC设备处理,android.nfc包提供了对近场通信(NFC)功能的访问,允许应用程序读取NFC标签中的NDEF消息
是否有任何 NFC 设备必须始终具有 NDEF 格式的数据?
是和否,在此模式下,NFC 设备模拟 ISO 14443 智能卡或集成在移动设备中的智能卡芯片连接到 NFC 模块的天线。传统读卡器无法将在标签仿真模式下运行的手机与普通智能卡区分开来。
这是 NFC 技术的一个优势,因为不需要更换现有的阅读器基础设施。用于标签仿真的智能卡芯片也称为安全元件。
是否有可能有 NFC 而没有 NDEF?
是的,这里有相当多的介绍:Advanced NFC
一张空的 NFC 卡会是什么样子?它是否仍然具有 NDEF header 信息但没有有效负载?或者标签是否可能完全为空,即也没有任何标题信息?
NDEF由四部分组成
3 位 TNF(类型名称格式)
指示如何解释变长类型字段。
可变长度类型
描述记录的类型。如果使用 TNF_WELL_KNOWN,请使用此字段指定记录类型定义 (RTD)。
可变长度 ID
记录的唯一标识符。该字段并不经常使用,但是如果您需要唯一地标识标签,则可以为其创建一个ID。
可变长度有效载荷
您要读取或写入的实际数据负载。 NDEF 消息可以包含一个或不包含或多个 NDEF 记录,因此不要假设完整的有效负载在 NDEF 消息的第一个 NDEF 记录中。
在这种情况下,安卓手机或读卡器还能检测到吗?究竟是什么让标签被阅读器检测到?
标签调度系统使用类型名称格式 (TNF) 和类型字段来尝试将 MIME 类型或 URI 映射到 NDEF 消息。如果成功,它将该信息与实际有效负载一起封装在
ACTION_NDEF_DISCOVERED
Intent 中。但是,也存在标签调度系统无法根据第一个 NDEF 记录确定数据类型的情况。当 NDEF 数据无法映射到 MIME 类型或 URI,或者当 NFC 标签不包含 NDEF 数据时,就会发生这种情况。在这种情况下,包含有关标签技术和有效负载信息的 Tag 对象被封装在 ACTION_TECH_DISCOVERED
Intent 中。对于空消息,TNF将为
TNF_EMPTY
(指示记录为空。TNF_EMPTY记录中的Type,id和有效负载字段为空。)在这种情况下,它会退回到ACTION_TECH_DISCOVERED
。Refer these links
关于android - NFC和NDEF是什么关系,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18013972/