我们今天学习一下NFCDemo
FakeTagsActivity发布Tag,TagViewer处理Tag,流程简单,不说了
说一下MockNdefMessages里面的结构
以paint text为例
/**
* A plain text tag in english.
*/
public static final byte[] ENGLISH_PLAIN_TEXT =
new byte[] {(byte) 0xd1/*flags(5)+tnf(3)*/, (byte) 0x01/*type length*/, (byte) 0x1c/*payload length*/, (byte) 0x54/*'T'*/, (byte) 0x02, (byte) 0x65,
(byte) 0x6e, (byte) 0x53/*'S'*/, (byte) 0x6f, (byte) 0x6d, (byte) 0x65, (byte) 0x20,
(byte) 0x72, (byte) 0x61, (byte) 0x6e, (byte) 0x64, (byte) 0x6f, (byte) 0x6d,
(byte) 0x20, (byte) 0x65, (byte) 0x6e, (byte) 0x67, (byte) 0x6c, (byte) 0x69,
(byte) 0x73, (byte) 0x68, (byte) 0x20, (byte) 0x74, (byte) 0x65, (byte) 0x78,
(byte) 0x74, (byte) 0x2e};
上面我已经进行了一些说明,第一个字节:flags对应字节的前5位,后三位对应tnf。第二个字节:type length,这里是1。第三个字节:payload 长度,这里是28。第四个字节:type,这里是"T"。对于smartPoseter,type length就是2,对应的第四和第五个字节应该是'S'和'p'。
然后就是payload
/**
* A plain text tag in english.
*/
public static final byte[] ENGLISH_PLAIN_TEXT =
new byte[] {(byte) 0xd1/*flags(5)+tnf(3)*/, (byte) 0x01/*type length*/, (byte) 0x1c/*payload length*/, (byte) 0x54/*'T'*/, (byte) 0x02, (byte) 0x65,
(byte) 0x6e, (byte) 0x53/*'S'*/, (byte) 0x6f, (byte) 0x6d, (byte) 0x65, (byte) 0x20,
(byte) 0x72, (byte) 0x61, (byte) 0x6e, (byte) 0x64, (byte) 0x6f, (byte) 0x6d,
(byte) 0x20, (byte) 0x65, (byte) 0x6e, (byte) 0x67, (byte) 0x6c, (byte) 0x69,
(byte) 0x73, (byte) 0x68, (byte) 0x20, (byte) 0x74, (byte) 0x65, (byte) 0x78,
(byte) 0x74, (byte) 0x2e};
本文深入探讨了NFCDemo中MockNdefMessages的结构,详细解析了其内部组成,包括标志位、类型长度、有效负载长度及具体信息。以painttext为例,解释了如何构建和使用此类Tag。
1215

被折叠的 条评论
为什么被折叠?



