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