我想通过 LLCP 在一个 NDEF 记录中的 NDEF 消息中传输自定义数据(或者可能有效负载将在多个 NDEF 记录中分块(。传输的内容是具有特定格式的文件,仅在特定应用程序中具有意义。那么,指定 NDEF 标头的最佳方法是什么?
1( 将TNF设置为0x04(NFC论坛外部类型(,0x03(绝对URI(或0x05(未知(?0x04将在 TYPE 字段中具有自定义相对 URI,如果是绝对 URI,则0x03绝对 URI。我不太喜欢0x05,因为接收设备无法识别用于处理数据的应用程序,因为在这种情况下 TYPE 必须为空(这里只有 ID 字段可以提供帮助(。
2( ID 字段用于 NDEF 消息的唯一性,因此可以为空,也可以包含表单中的自定义标识符,例如 com.company.nfc.application_name&id=message_generated_uuid
我的观点是 - 使用 TNF 0x03或0x04 是一种首选方法,除非消息需要一些额外的标识,否则将 ID 留空,最好在有效载荷之外传输。
BRSTeN
如果您的应用程序也必须与Android 2.3 Gingerbread和其他平台一起使用,我建议您使用自己定义的MIME类型(TNF字段设置为0x02(。
Android 2.3不支持外部类型,所以我不建议这样做。使用未知类型无助于识别要使用的有效负载和/或应用。Android 将绝对 URI 类型与众所周知的类型 URI RTD"U"视为相同,因此可能会导致混淆。我不知道有任何平台将使用 ID 字段来识别要使用的应用程序。
您还可以在消息末尾添加包含应用软件包名称的 Android 应用程序记录。在 Android 4 ICS 上,这将使您的应用优先于基于 NDEF 消息类型的任何其他潜在匹配项。