ndef 全称 nfc data exchange format 即 nfc 数据交换格式
组成:
ndef message 由 多个 nfc record 组成
1 nfc record 包括 nfc record header(数据头)和 nfc record payload(数据荷载)两部分
2 nfc record header
其中第一个字节最重要 包含 MB ME CF SR IL TNF
2.6
2.6-a:empty 空的 表示是一个空的 nfc record
2-6-b:nfc forum well-Known type 定义了一些常见的数据格式 如下:
- URI Record Type:用于存储URI数据,对应Type字段取值为"U"。
- Text Record Type:用于存储文本数据,对应Type字段取值为"T"。
- Signature Record Type:用于存储数字签名数据,对应Type字段取值为"Sig"。
- Smart Poster Record Type:智能海报,用于存储与该海报相关的一些资讯信息,如图片、相关介绍等,对应Type字段取值为"Sp"
- Generic Control Record Type:用于传递控制信息,对应Type字段取值为"Gc"
2-6-c:MIME (Multipurpose Internet Mail Extensions)多用途 internet 扩展。遵循 RFC2046规范。如果取值为 MIME,则 type 字段可以取值为:“text/plain”,“img/png"。
2-6-d:Absolute URI 即绝对的 uri 地址,遵循 rfc 3986 规范。如绝对 uri 为:”http://www.baidu.com“。则其相对 uri 为:”www.baidu.com“。
2-6-e:nfc forum external type
为第三方组织定义的类型,目前NFC Forum没有定义相关的数据类型。
2-6-f:unknown 代表Payload中的数据类型未知,它和MIME类型"application/octet-stream"有些类似,这种类型的数据由相应的应用程序来解析。
2-6-g:unchanged:这种类型的数据用于NFC Record分片。例如一个大的数据需要通过多个NFC Record来承载,除第一个NFC Record分片外,该数据对应的其他NFC Record分片都必须设置TNF为Unchanged。
2.7:type length 是 record header 中 type 字段的长度
2.8:pay load length 3 ~ 0: 这四个字段共同指明 payload 字段的长度 如果 SR 字段被设置,则 record header 只包含一个 payload length字段。
2.9:ID length 用于表示 ID 字段的长度,如果 IL 字段未设置,则 ID 和 ID length 字段都将不存在。
2.10:type
- URI Record Type:用于存储URI数据,对应Type字段取值为"U"。
- Text Record Type:用于存储文本数据,对应Type字段取值为"T"。
- Signature Record Type:用于存储数字签名数据,对应Type字段取值为"Sig"。
- Smart Poster Record Type:智能海报,用于存储与该海报相关的一些资讯信息,如图片、相关介绍等,对应Type字段取值为"Sp"
- Generic Control Record Type:用于传递控制信息,对应Type字段取值为"Gc"
2.11:ID 需要配合URI类型的Payload一起使用,它使得一个NFC Record能通过ID来指向另外一个NFC Record。
2.12:pay load
1 文本型 0xd1,0x01,0x0F,0x54,0x02,0x65,0x6E, 0x68,0x65,0x6c,0x6c,0x6F,0x2c,0x77,0x6F,0x72 ,0x6c ,0x64 ,0x21
D1(1101 0001B)对应 MB ME CF SR IL TNF TNF 为 0x01
01 type 的长度
0F payload 的长度
54 type 的类型 对应 ”T“
02 对应语言码字段的长度
65 6E 表示为 “en”
68 65 6C 6F 2C 77 6F 72 6C 64 21 payload 的内容 对应 ASCII 码 结果为 ”Hello,World!“。
ascII 对照表:
ASCII码表,ASCII码一览表,ASCII码对照表完整版-ASCII码中文站
2 网址型:0xD1 ,0x01 ,0x09 ,0x55 ,0x01 ,0x2E,0x6E ,0x66 ,0x63 ,0x2E ,0x63 ,0x6F ,0x6D
D1 (11010001B) 对应 MB ME CF SR IL TNF TNF 为 0x01
01 type 的长度
08 payload 的长度
55 对应 ”U“ 即 url
01 identifier code 对应表二 为 http://www
6E 66 63 2E 63 6F 6D 对用ASCII表,即 “nfc.com"。