劉 俊
(重慶云途交通科技有限公司,重慶 400067)
車(chē)載藍(lán)牙電話技術(shù)研究及實(shí)現(xiàn)
劉 俊
(重慶云途交通科技有限公司,重慶 400067)
車(chē)載藍(lán)牙電話是專(zhuān)為行車(chē)安全和舒適性而設(shè)計(jì),通過(guò)車(chē)載設(shè)備的藍(lán)牙與手機(jī)藍(lán)牙相連,使用者不需要觸碰手機(jī)便可控制手機(jī)電話,實(shí)用性好。藍(lán)牙電話基于藍(lán)牙HFP協(xié)議,車(chē)載設(shè)備端需具備藍(lán)牙免提組件(HF)的協(xié)議流程處理功能和對(duì)應(yīng)的UI交互處理功能。
車(chē)載設(shè)備;藍(lán)牙電話;Android系統(tǒng);藍(lán)牙協(xié)議
車(chē)載藍(lán)牙電話是專(zhuān)為行車(chē)安全和舒適性而設(shè)計(jì),用戶只需要擁有一部帶有藍(lán)牙功能的手機(jī),便可與車(chē)載藍(lán)牙連接,從而通過(guò)車(chē)載設(shè)備來(lái)進(jìn)行呼叫功能。使用者不需要觸碰手機(jī)便可控制手機(jī),用語(yǔ)音指令控制、操作車(chē)載終端甚至方向盤(pán)來(lái)接聽(tīng)或撥打電話,通過(guò)車(chē)上的音響或藍(lán)牙無(wú)線耳麥進(jìn)行通話,可以保證良好的通話效果。車(chē)載藍(lán)牙電話普遍使用在前裝車(chē)載娛樂(lè)終端和后裝車(chē)載設(shè)備上,是一項(xiàng)適用的技術(shù)。本文主要介紹基于Android系統(tǒng)車(chē)載設(shè)備藍(lán)牙電話功能實(shí)現(xiàn)原理。
Android系統(tǒng)藍(lán)牙包括應(yīng)用層、框架層和本地庫(kù)、HAL層和Kernel內(nèi)核驅(qū)動(dòng)代碼。BlueZ協(xié)議主要在本地庫(kù)和內(nèi)核代碼中實(shí)現(xiàn),本地庫(kù)和內(nèi)核通過(guò)HAL層接口進(jìn)行通信??蚣軐又饕獙?shí)現(xiàn)藍(lán)牙應(yīng)用協(xié)議Profile的管理,通過(guò)JNI接口與本地庫(kù)交互??蚣軐影ū镜厮{(lán)牙設(shè)備適配、本地藍(lán)牙信息及管理、遠(yuǎn)端設(shè)備屬性、基于RFCOMM的藍(lán)牙設(shè)備服務(wù)端和客戶端socket管理、藍(lán)牙各類(lèi)Profile服務(wù)等。藍(lán)牙電話功能相管理的模塊包括Settings App, Phone, Bluetooth,主要是車(chē)載智能設(shè)備的Android系統(tǒng)對(duì)藍(lán)牙HFP協(xié)議(Hands-freeProfile)的支持。HFP可以在藍(lán)牙連接基礎(chǔ)上實(shí)現(xiàn)電話控制功能,為藍(lán)牙電話功能提供統(tǒng)一的標(biāo)準(zhǔn)。
3.1藍(lán)牙HFP協(xié)議
HFP協(xié)議定義了音頻網(wǎng)關(guān)(AG)和免提組件(HF)兩個(gè)角色:AG設(shè)備作為音頻的輸入/輸出網(wǎng)關(guān),即手機(jī)端;HF設(shè)備作為音頻網(wǎng)關(guān)的遠(yuǎn)程音頻輸入/輸出機(jī)制,即車(chē)載設(shè)備端。HFP協(xié)議提供了HF設(shè)備若干電話相關(guān)的遙控功能,首先是建立RFCOMM連接,通過(guò)RFCOMM協(xié)議通道在兩個(gè)設(shè)備間交互AT命令,AT命令集基于ITUTV.250和GSM07.07。HF端下發(fā)AT命令讀取AG端狀態(tài)以及控制AG端電話功能。同時(shí),AG端通過(guò)AT命令(+CIEV:)指示終端的狀態(tài)。
圖1
3.2Android系統(tǒng)HFP協(xié)議的實(shí)現(xiàn)
Android系統(tǒng)HFP協(xié)議AG端接收并解析呼叫相關(guān)的AT命令并對(duì)調(diào)用電話系統(tǒng)接口進(jìn)行處理。AT命令包括:
“AT+D”撥號(hào)操作;
“AT+A”接聽(tīng)操作;
“AT+CHUP”掛斷操作;
“AT+CLCC”呼叫狀態(tài)查詢(xún);
“AT+VTS”雙音多頻音發(fā)送;
“AT+CHLD”呼叫保持操作;
“AT+VGS”揚(yáng)聲器音量調(diào)節(jié);
“AT+VGM”麥克音量調(diào)節(jié);
“+CIND”手機(jī)狀態(tài)指示等。
滿足了HF端所有的電話控制功能。因此,Android系統(tǒng)手機(jī)是支持AG端藍(lán)牙耳機(jī)和藍(lán)牙電話功能的,作為HF端的車(chē)載設(shè)備也應(yīng)該具備對(duì)等的功能。車(chē)載設(shè)備端需要增加藍(lán)牙電話的界面交互和邏輯處理,支持HFP協(xié)議HF端處理流程。Android 5.0以上的框架層(Framework)增加了免提服務(wù)客戶端管理并完善了HFP協(xié)議流程處理,因此采用Android 5.0以上系統(tǒng)的車(chē)載設(shè)備可在已有框架基礎(chǔ)上提供完整的藍(lán)牙電話功能,具體的實(shí)現(xiàn)流程如圖1所示。Bluetooth Client Service中增加電話控制相關(guān)接口,包括dial()、accept Call()、hold Call()、terminate Call()、hold Call()、getCurrent Calls()等,提供了撥號(hào)、接聽(tīng)、掛斷、保持、呼叫狀態(tài)查詢(xún)等功能。Headset Client State Machine作為框架層和協(xié)議處理之間的橋梁,主要完成HFP在框架層的邏輯處理和狀態(tài)跳轉(zhuǎn),包含以下兩方面:(1)從本地的協(xié)議層模塊中接收電話指示,通過(guò)系統(tǒng)廣播通知應(yīng)用程序振鈴或者更新呼叫狀態(tài)顯示。(2)管理協(xié)議狀態(tài)(連接或者斷開(kāi)),調(diào)用本接口,將應(yīng)用的控制下發(fā)到協(xié)議模塊。在藍(lán)牙協(xié)議層中,Bta_hf_client_cmd負(fù)責(zé)AT指令的組裝和發(fā)送,Bta_hf_client負(fù)責(zé)AT指令的接收、解析和上報(bào)。藍(lán)牙電話APP主要負(fù)責(zé)UI交互和界面邏輯處理,給用戶提供便捷的功能,包括撥號(hào)盤(pán)、同步通信錄和通話記錄、查找聯(lián)系人、來(lái)電提醒、通話界面的按鈕等。如果在方向盤(pán)上增加電話功能按鍵,通過(guò)車(chē)上線束將方向盤(pán)的按鍵事件發(fā)送到車(chē)載設(shè)備,就可觸發(fā)呼叫、接聽(tīng)、掛斷等功能,這樣駕駛員在手不離開(kāi)方向盤(pán)的情況下,控制手機(jī)電話。
目前,藍(lán)牙設(shè)備使用廣泛,藍(lán)牙協(xié)議也發(fā)展較成熟,通過(guò)藍(lán)牙連接將手機(jī)的功能轉(zhuǎn)移到車(chē)載設(shè)備上實(shí)現(xiàn)車(chē)載互聯(lián)的一種形式,其目的就是為了方便行車(chē),提高用戶體驗(yàn)。隨著硬件、軟件技術(shù)的發(fā)展,將會(huì)有更多基于藍(lán)牙連接方案的電子產(chǎn)品應(yīng)用到車(chē)載、醫(yī)療健康等領(lǐng)域,給用戶提供更多的便捷。
[1]韓超,梁泉. Android系統(tǒng)原理及開(kāi)發(fā)要點(diǎn)詳解[M].北京:電子工業(yè)出版社,2010.
[2]張祿林.藍(lán)牙協(xié)議及其實(shí)現(xiàn)[M].北京:北京人民郵電出版社,2001.
TN924
A
中國(guó)新技術(shù)新產(chǎn)品2016年21期