肖佳旭,張歆奕,何 興
(1五邑大學(xué)信息工程學(xué)院,廣東江門529020;2朝野科技有限公司,廣東佛山528234)
基于藍(lán)牙的智能手機(jī)遙控系統(tǒng)設(shè)計和實現(xiàn)
肖佳旭1,張歆奕1,何 興2
(1五邑大學(xué)信息工程學(xué)院,廣東江門529020;2朝野科技有限公司,廣東佛山528234)
往日的電視和手機(jī)在生活中所充當(dāng)?shù)慕巧珕我?,而如今智能電視和智能手機(jī)的出現(xiàn)則大大改變了人們現(xiàn)有的生活方式。手機(jī)作為手持設(shè)備也逐漸成為控制家電的新手段。以前的手機(jī)僅僅是作為通訊設(shè)備,而電視也只是一個顯示視頻的終端;而現(xiàn)在隨著Android的面世,兩者之間存在很多相同點,同時也具有各自的優(yōu)勢。本項目在手機(jī)端通過實現(xiàn)客戶端程序,將日常生活中的紅外遙控移植到手機(jī)端,并且通過藍(lán)牙與電視進(jìn)行交互,為用戶提供了一種新的便捷操控方式。
Android;藍(lán)牙;智能手機(jī);智能電視
隨著物聯(lián)網(wǎng)技術(shù)的迅速發(fā)展和人民生活水平的不斷提高,人們不斷地追求更為舒適便利和新潮的生活方式,對娛樂性產(chǎn)品的功能需求隨著技術(shù)的發(fā)展也日趨豐富與突出。時下,電視已然成為每個現(xiàn)代家庭都將購置配備的娛樂性家用電器,現(xiàn)在的電視機(jī)也正逐步地將高新技術(shù)引進(jìn)融入其中,使得其控制方式與交互體驗形式均已發(fā)生了重大的變化。傳統(tǒng)的電視機(jī)體積較大、重量不可小視、且畫面也不夠清晰,而現(xiàn)今的電視已經(jīng)平板化,不僅重量上變得輕便,同時畫面質(zhì)量也已發(fā)生了質(zhì)的提升。
目前安卓系統(tǒng)在智能電視市場中的占有率頗高,普及率也日居主流,如此即使得智能電視既擁有傳統(tǒng)電視的優(yōu)勢,同時更可開發(fā)有與智能手機(jī)相同的功能。對于智能電視用戶來說,智能電視類似于一塊超大屏幕的非觸屏手機(jī),用戶則可以通過觸摸完成所有的控制操作?;诖耍瑸榱双@得簡單便捷的與電視機(jī)交互效果以及能夠為用戶創(chuàng)造更佳的體驗方式,本次研究項目選擇設(shè)計開發(fā)了一款手機(jī)與智能電視配合使用的遙控解決方案。其中,手機(jī)將提供顯示界面給用戶查看并發(fā)送指令,指令的響應(yīng)和功能的實現(xiàn)則均由智能電視端來進(jìn)行整合規(guī)劃并最終完成[1-2]。
系統(tǒng)總體分為2部分:一個部分為智能手機(jī)端,另一個部分為智能電視端。兩者采用藍(lán)牙的方式實施連接,智能手機(jī)端負(fù)責(zé)探測用戶的動作和發(fā)出遙控指令;智能電視端則負(fù)責(zé)對接收的遙控指令做出功能效果響應(yīng)。在此,針對這2個部分的設(shè)計方案,可給出如下概述。
1.1智能手機(jī)端
這部分應(yīng)用的界面設(shè)計包含歡迎界面,遙控界面以及菜單界面3個專區(qū)。其中,歡迎界面只包含一個窗口,主要用于顯示軟件的歡迎界面;遙控界面也同樣包含一個窗口,對應(yīng)功能是負(fù)責(zé)向用戶呈現(xiàn)可觸摸的遙控按鈕界面,并且監(jiān)聽用戶的點擊事件做出實時反饋與處理。
手機(jī)端應(yīng)用重點包含如下3個功能:藍(lán)牙設(shè)置、更換背景、震動開關(guān)。具體地,藍(lán)牙設(shè)置主要對其可見性、連接狀態(tài)等進(jìn)行基本定義;更換背景主要是對遙控界面進(jìn)行個性化設(shè)置,而震動開關(guān)則是為了迎合不同用戶的習(xí)慣,對于點擊屏幕產(chǎn)生的震動反饋,用戶可以選擇性地打開或者關(guān)閉。
1.2智能電視端
智能電視端的開發(fā)將是基于現(xiàn)有的平臺上來發(fā)生和實現(xiàn),因此智能電視端的界面部分無需重新設(shè)計樣式,只需要根據(jù)已有界面的風(fēng)格進(jìn)行主題拓展即可。整體風(fēng)格的展示如圖1所示。
圖1 智能電視界面風(fēng)格Fig.1 The style of the smart TV
智能電視端的功能開發(fā)部分則是在網(wǎng)絡(luò)設(shè)置中添加藍(lán)牙設(shè)置功能,其中包含藍(lán)牙可見性、藍(lán)牙遙控開關(guān)、搜索藍(lán)牙設(shè)備、連接藍(lán)牙設(shè)備、更改與設(shè)備的連接狀態(tài)。功能設(shè)置的整體效果如圖2所示。
圖2 智能電視藍(lán)牙設(shè)置Fig.2 The Bluetooth setting of the smart TV
2.1智能電視端的實現(xiàn)
因篇幅所限,智能電視端的開發(fā)工作,本文只介紹藍(lán)牙遙控功能的實現(xiàn)?;陔娨暥嗽谙到y(tǒng)中所處服務(wù)端的地位,因此需要先行開啟Server Socket,目的就是針對來自于其他設(shè)備的連接請求執(zhí)行監(jiān)聽,手機(jī)端則通過服務(wù)端的MAC地址去發(fā)起連接請求,進(jìn)而初始化連接[3]。對于連接請求的監(jiān)聽,本節(jié)方法采用非綁定的Service進(jìn)行處理,并在該Service中定義了一個用于持續(xù)監(jiān)聽連接請求的線程;而當(dāng)成功處理一個連接請求以后,將返回一個已連接的BluetoothSocket對象到該Service中,此時再需定義一個線程,對應(yīng)在該線程中獲取已連接的BluetoothSocket的輸入流,而且將進(jìn)一步重寫該線程中的run方法,同時又在run方法中不斷地從輸入流中獲取來自客戶端的遙控數(shù)據(jù),由此則將接到的數(shù)據(jù)轉(zhuǎn)換成Android對應(yīng)的按鍵碼值,最終發(fā)送按鍵事件產(chǎn)生動作響應(yīng)。持續(xù)監(jiān)聽請求的代碼片段如圖3所示。
2.2智能手機(jī)端的實現(xiàn)
手機(jī)端的界面設(shè)計是采用LinearLayout、RelativiLayout和FrameLayout混合布局的方式進(jìn)行開放式構(gòu)建:整體而言,即為從上至下的線性布局,而對于遙控界面各個區(qū)域的不同,隨即選擇了利用水平線性布局和幀布局來完成對各個區(qū)域形狀的繪制。繪制完成后,主界面的實現(xiàn)效果如圖4所示。
圖3 代碼片段1Fig.3 Source code segment 1
圖4 主窗口效果圖Fig.4 Impression drawing of main activity
特別地,由圖4可見,圖中菜單滑動效果的實現(xiàn)方法,本次研發(fā)中采用的是重寫菜單所在Activity中的dispatchTpuchEvent()方法去攔截用戶的觸摸事件,一次完整的滑動事件可以分解為3個組成部分:ACTION_DOWN、ACTION_MOVE、ACTION_UP。各部分的含義可分別表述為:按下、移動、抬起。具體地,在按下時獲取事件產(chǎn)生的坐標(biāo),在移動過程中將連續(xù)的動作分解為各自成段的直線,并分別對每一段直線路徑實現(xiàn)定制處理[4-5],計算每一段的路程位移,而后再重繪界面產(chǎn)生移動的效果。核心代碼如圖5所示。
基于智能電視端的內(nèi)容可知,智能手機(jī)端在連接上處于客戶端的地位。要初始化到服務(wù)端的連接,首先即需保證服務(wù)端已經(jīng)開啟一個Server Socket,然后通過遠(yuǎn)程服務(wù)端設(shè)備的設(shè)備地址獲取到該遠(yuǎn)程設(shè)備的代表對象,其后利用該對象發(fā)起連接請求,其基本流程如下:
通過用戶點擊,獲取選中設(shè)備的MAC地址,再利用BluetoothAdaptercong從本地獲取代表該遠(yuǎn)程設(shè)備的BluetoothDevice對象。
圖5 代碼片段2Fig.5 Source code segment 2
利用BluetoothDevice獲取一個BluetoothSocket。該BluetoothSocket對象將在后續(xù)操作中連接到用戶所點擊的遠(yuǎn)程設(shè)備上,而調(diào)用方法時所傳入的UUID(Universally Unique Identifier)則必須和服務(wù)端開啟BluetoothServerSocket時所使用的UUID保持一致。在本項目中通過硬編碼的方式將UUID寫在智能電視端和智能手機(jī)端的應(yīng)用中,而且兩者所使用的UUID也彼此相同。
調(diào)用connect()方法初始化連接。通過調(diào)用此方法,系統(tǒng)將會進(jìn)行UUID匹配掃描,如果UUID相同,并且遠(yuǎn)程設(shè)備接受連接請求,那么雙方設(shè)備可以共享RFCOMM通道進(jìn)行傳遞數(shù)據(jù)。值得注意的是,connect()方法會阻塞線程直到方法成功返回或拋出異常,因此需將其放在單獨的線程進(jìn)行操作。
當(dāng)2臺設(shè)備成功建立通信以后,每臺設(shè)備都會得到一個BluetoothSocket對象,該對象已經(jīng)連接到目標(biāo)設(shè)備,此時可以獲取連接所對應(yīng)的輸出流,利用該輸出流將用戶的操作指令發(fā)送到目標(biāo)設(shè)備實行接收處理。
2.3手機(jī)端與電視端的連接
當(dāng)智能電視端和智能手機(jī)端的服務(wù)均創(chuàng)建成功以后,便可以通過手機(jī)和電視之間的配合操作對電視端進(jìn)行控制。首先必須在智能電視端打開藍(lán)牙開啟服務(wù)進(jìn)行有關(guān)連接請求的監(jiān)聽,其次便可使用手機(jī)端的藍(lán)牙對電視設(shè)備發(fā)起搜索,點擊設(shè)備進(jìn)入配對,成功匹配后再根據(jù)界面提示進(jìn)行連接,完成連接后,此時手機(jī)端就可以取代電視所配備的物理遙控器。
智能電視在生活中已然形成普及流行態(tài)勢,同時手機(jī)也已經(jīng)成為當(dāng)代人不可或缺的伴隨式物品?;谒{(lán)牙的智能手機(jī)遙控系統(tǒng),不僅涉及到手機(jī),還將電視終端融入設(shè)計內(nèi)容,因而可以同時獲取2個平臺的用戶。在時下的互聯(lián)網(wǎng)時代,能獲取用戶的眼球就會贏得更大的商機(jī),因此無論是電視端還是手機(jī)端,都為日后的應(yīng)用拓展奠定了前瞻性遠(yuǎn)景預(yù)期的良好基礎(chǔ)。
[1]黃巍.智能電視、云電視是產(chǎn)業(yè)未來增長點[J].家用電器,2012(2):44-45.
[2]喬維,薛楠.智能電視產(chǎn)業(yè)發(fā)展現(xiàn)狀及趨勢研究[J].電視技術(shù),2012,36(S1):30-33,47.
[3]沈曉峰.基于2.4G無線傳輸?shù)娜藱C(jī)交互智能遙控器設(shè)計[D].杭州:杭州電子科技大學(xué),2014.
[4]張楠.基于Android平臺的手機(jī)小助手的設(shè)計與實現(xiàn)[D].大連:大連理工大學(xué),2013.
[5]邵艷潔.Android操作系統(tǒng)移植及應(yīng)用研究[D].長沙:湖南大學(xué),2011.
The design and implementation of a remote control system based on smart phone and Bluetooth
XIAO Jiaxu1,ZHANG Xinyi1,HE Xing2
(1 School of Information Engineering,Wuyi University,Jiangmen Guangdong 529020,China;2 Asano Technology Co.,LTD,F(xiàn)oshan Guangdong 528234,China)
TV and phone had played single role in the past life.Currently,the emergence of smart TV and phones has greatly changed the ways of the human’s life.As a handheld device,cell phone has gradually become a new mean to control home appliances.Previous cell phone merely acts as a communication equipment,and television was just a display terminal.But with the launch of the Android system,apart from the corresponding different advantages,they have more and more similarities.In this paper,APPs are designed for both phone terminal and TV terminal,which transplant the task usually performed by infrared remote controller to cell phone,and interacts with TV via Bluetooth.So the research provides a new way to control TVs for users.
Android;Bluetooth;smart phone;smart TV
TP391
A
2095-2163(2016)03-0071-03
2016-04-29
肖佳旭(1990-),男,碩士,主要研究方向:Android/WEB應(yīng)用研發(fā)。