一、OBEX介绍
OBEX全称为Object Exchange,中文对象交换,所以称之为对象交换协议。它在此软件当中有着核心地位,文件传输和IrMC同步都会使用到它。OBEX v2.0蓝牙协议层次结构图:
OBEX可以用来传输vCard(电话本),vCalendar(电子日历),vMessage(短信和email)和vNotes(电子笔记)。
OBEX Object
OBEX协议定义了一种柔性的概念——objects。也即是对象。这些对象可以包括文件,诊断信息,电子商务卡片,银行的存款等等。Objects在这里没有高级的技术含义,而是视你的应用而定。
OBEX Object模型描述的是如何表示OBEX Object,OBEX协议可以使用Put-和Get-operations传输Object。一个object可以通过一个或者多个Put-requests、 Get-responses进行交互。Object是由headers组成的,header由header ID和header value组成。通过Header ID可以确定header的格式及包含哪些信息,header value由一个或者多个字节组成,其格式和含义由header ID决定。目前定义的header有:
header ID |
header name |
描述 |
0xC0 |
Count |
连接中用于指名对象的数量。 |
0x01 |
Name |
对象的名字。一般为文件名。 |
0x42 |
Type |
对象的类型。例如text,html,binary,manufacture specific |
0x44 0xC4 |
Time |
时间戳。ISO 8601版本 时间戳。4Byte版本(用于兼容) |
0x05 |
Description |
对对象的文本描述 |
0x46 |
Target |
操作的目的服务名 |
0x47 |
HTTP |
一个HTTP1.x头 |
0x48 |
Body |
对象的一部分 |
0x49 |
End of body |
对象的最后一部分 |
0x4A |
Who |
OBEX Application标识,用于表明是否是同一个应用。 |
0xCB |
Connection ID |
用于OBEX多路连接的标识 |