SyncML在藍牙車(chē)載信息娛樂(lè )設備上的設計與實(shí)現
SyncML應用獨立于具體的傳輸方式,換言之,針對具體的傳輸方式,SyncML定義了相應的綁定適配協(xié)議。對于藍牙應用,SyncML OBEX綁定協(xié)議定義了SyncML在藍牙上的實(shí)現方式。下面介紹OBEX協(xié)議,以及SyncML在OBEX上綁定時(shí)需要注意的地方。
OBEX(Object Exchange)對象交換協(xié)議是采用C/S(客戶(hù)/服務(wù)器)結構的面向會(huì )話(huà)的協(xié)議,它建立了“對象模型”以抽象描述各種實(shí)體,并定義了Header的概念來(lái)描述對象,一個(gè)對象便是一系列Header的集合。
OBEX定義了OBEX客戶(hù)端和服務(wù)器端的應用規范,客戶(hù)端是指發(fā)起OBEX連接、初始化OBEX會(huì )話(huà)的一端。根據車(chē)載設備要在免提連接建立后進(jìn)行電話(huà)薄同步的應用,車(chē)載設備需要實(shí)現OBEX客戶(hù)端。OBEX客戶(hù)端在之前建立的Rfcomm連接的通道上發(fā)起連接請求,請求數據為80 00 15 11 00 04 00 46 00 0e 53 59 4e 43 4d 4c 2d 53 59 4e 43。其中0x80為連接操作符,連接請求包長(cháng)度為0x0015,OBEX版本為version1.1,版本號表示為0x1100,最大OBEX包長(cháng)度為0x0400,0x46表示Target,Target表明連接的目的或服務(wù),在這里Target為53 59 4e 43 4d 4c 2d 53 59 4e 43即SYNCML-SYNC,表明建立的OBEX連接用于SyncML。
SyncML Document需要封裝為SyncML MIME類(lèi)型的對象在OBEX請求或響應主體內傳輸,該類(lèi)型為"application/vnd.syncml+wbxml"。SyncML同步電話(huà)薄的速度是個(gè)很關(guān)鍵的用戶(hù)體驗,相關(guān)的關(guān)鍵屬性值為最大OBEX包長(cháng)度,它決定了每次交互的OBEX包的大小,從而決定了交互次數,該最大包長(cháng)度越大,交互次數越少,從而同步速度越快,反之,同步速度越慢。該最大包長(cháng)度在OBEX連接時(shí)協(xié)商決定,取雙方設備能夠支持的最大包長(cháng)度的較小值。
SyncML的藍牙應用不可避免地會(huì )遇到兼容性問(wèn)題,在測試過(guò)程中發(fā)現車(chē)載設備和Nokia6288手機進(jìn)行同步時(shí),車(chē)載設備通過(guò)PUT發(fā)給手機的SyncML Document的最后一包必須是空包82 00 03,否則無(wú)法繼續同步。
vCard解析
SyncML實(shí)現的藍牙手機和車(chē)載設備間電話(huà)薄同步應用中,首先提取出采用vCard格式的個(gè)人信息數據和相關(guān)命令,將數據和命令映射在一起存儲為結構體形式的列表,然后根據vCard規范解析出個(gè)人信息,根據命令完成添加、刪除和替代電話(huà)薄條目。解析出的個(gè)人信息包括人名、手機號碼、家庭電話(huà)、辦公電話(huà)和車(chē)載電話(huà),命令為ADD、DELETE、REPLACE。下面簡(jiǎn)要介紹vCard規范,以及vCard解析的實(shí)現。
vCard電子名片規范定義了個(gè)人公共信息交換(PDI)的描述標準和組織格式,該格式與信息傳送的方式無(wú)關(guān),方便了各種系統和應用之間的信息交換。在vCard中,個(gè)人公共信息包括姓名、年齡、地址、電話(huà)等與個(gè)人緊密相關(guān)的基本信息。手機內vCard樣例如下:
BEGIN:VCARD
VERSION:2.1
N:denglibao
TEL;WORK:045182605447
TEL;HOME:05307415684
TEL;CELL:13478951524
END:VCARD
現在使用的vCard規范版本為2.1和3.0,定義了數據的存儲格式及訪(fǎng)問(wèn)接口的規范,vCard解析需要能夠解析這兩種版本。根據車(chē)載信息娛樂(lè )設備的應用,vCard解析函數需要提取出姓名和電話(huà)號碼兩個(gè)屬性,其中電話(huà)號碼又包括手機、家庭電話(huà)、辦公電話(huà)、車(chē)載電話(huà)四類(lèi),其屬性值均為T(mén)EL,參數值分別為CELL、HOME、WORK、CAR,下面給出設計代碼的主要部分。
評論