李社蕾 孫天宇
(三亞學(xué)院理工學(xué)院,海南 三亞 572022)
基于Android的幻燈片控制器
李社蕾 孫天宇
(三亞學(xué)院理工學(xué)院,海南 三亞 572022)
本設(shè)計通過Android操作系統(tǒng)的移動設(shè)備對個人計算機進行控制,從而對幻燈片、MediaPlayer等軟件或桌面進行遠程操作。完成了MediaPlayer的直接控制以及通過觸屏模擬電腦觸摸板從而實現(xiàn)模擬鼠標的操作功能,實現(xiàn)了通過Android手機等觸屏設(shè)備對個人電腦的幻燈片操作。
Android;控制;客戶端;服務(wù)器
隨著Android操作系統(tǒng)的快速發(fā)展,Android移動設(shè)備也不斷增加。遠程控制軟件的發(fā)展也到達了一個新領(lǐng)域[1]?;脽羝刂破髟O(shè)計與實現(xiàn),意在便利使用者的工作與生活[2]。軟件通過Android操作系統(tǒng)的移動設(shè)備對個人計算機進行控制,從而實現(xiàn)對于幻燈片、MediaPlayer等軟件或桌面的遠程操作。
2.1 幻燈片控制器PC端服務(wù)器設(shè)計
服務(wù)器端使用Java編寫。需要獲取本機IP,對于用戶填寫的端口號進行合法性的驗證。對于客戶端發(fā)送來的信息進行處理反饋,并在個人電腦中執(zhí)行相應(yīng)的操作。如圖1所示。
2.3 程序執(zhí)行流程圖
程序執(zhí)行過程可大致分為:
(1)準備階段,在PC端啟動用于接收指令的服務(wù)器程序監(jiān)聽設(shè)定端口,客戶端獲取用戶填寫IP以及端口號。
(2)信息發(fā)送階段:用戶與UI產(chǎn)生互動,客戶端向指定端口發(fā)送信息。
(3)信息接收階段:服務(wù)器從所監(jiān)聽端口獲取相應(yīng)數(shù)據(jù)并按規(guī)則拆分。
(4)響應(yīng)階段:服務(wù)器接收信息后對信息進行相應(yīng)處理,并對個人電腦進行操作。
流程圖如圖3所示。
圖3 程序執(zhí)行流程
圖1 服務(wù)器端執(zhí)行流程圖
2.2 幻燈片控制器Android客戶端設(shè)計
系統(tǒng)包括幻燈片控制器,鼠標控制器,以及mediaplayer控制器三部分,分別通過觸摸,按鈕對其進行相應(yīng)的控制操作,如圖2所示。
圖2 客戶端結(jié)構(gòu)圖
3.1 服務(wù)器程序
(1)圖形界面的初始化
圖形界面作為用戶與程序交互的窗口,是程序開發(fā)中一項不可或缺的重要工作,通過任何語言或者不同的工具實現(xiàn)圖形化的原理都很相像[3],即通過用戶點擊、輸入等操作傳遞信息,對用戶的操作作出響應(yīng),創(chuàng)建視圖不僅要有適當(dāng)?shù)脑?,還要進行合理的布局。
(2)信息的監(jiān)聽
服務(wù)器端最重要的功能即時對客戶端發(fā)送來的信息進行監(jiān)聽和處理,Android支持socket通信[4],TCP為了保證不發(fā)生丟包,就給每個包一個序號,同時序號也保證了傳送到接收端實體的包的按序接收。然后接收端實體對已成功收到的包發(fā)回一個相應(yīng)的確認(ACK);如果發(fā)送端實體在合理的往返時延(RTT)內(nèi)未收到確認,那么對應(yīng)的數(shù)據(jù)包就被假設(shè)為已丟失將會被進行重傳。TCP用一個校驗和函數(shù)來檢驗數(shù)據(jù)是否有錯誤;在發(fā)送和接收時都要計算校驗和。這也使得TCP是一個繁瑣而且延遲十分大的傳輸方式,相比之下UDP則不需要繁瑣的驗證流程,也不需要接收端作出回應(yīng),雖然可能會發(fā)生丟包現(xiàn)象但是對操作影響并不大,而與之相比帶來的是良好的實時性。因而在選擇傳輸方式時選擇了UDP。
(3)信息的處理
作為一款遠程控制軟件,僅僅監(jiān)聽所得到的信息顯然是不夠的,最終的目的是要對用戶的操作做出響應(yīng),從而對計算機或其相應(yīng)的軟件進行控制,已達到便利工作生活的目的。計算機最常用的輸入設(shè)備一般為鼠標和鍵盤,所以絕大多數(shù)軟件在支持鼠標控制的同時,也支持鍵盤快捷鍵的控制。因此可以使用Robot類來模擬鼠標和鍵盤,對系統(tǒng)下達指令,完成用戶的操作。服務(wù)器端連接界面如圖4所示。
圖4 服務(wù)器端連接界面圖
3.2 客戶端程序
(1)連接界面
根據(jù)需求分析以及設(shè)計的用戶界面確定所需要的類,在用戶輸入相應(yīng)信息之后需要觸發(fā)一個事件把該信息發(fā)送出去,這個時間就是Click事件,因此需要使用Button來完成該操作,然而用戶不一定了解輸入格式,所以用TextView標簽把輸入格式和要求提供給用戶,即便如此也不能保證用戶一定會有合法的輸入。因為端口號要求是整形,但是通過getText ()獲取到的是字符,如果用戶輸入空置,則在強制轉(zhuǎn)換的過程中必然會報錯。為了防止上述狀況的發(fā)生,則需要在觸發(fā)事件時加上異常處理,并使用AlertDialog對用戶進行提示。
(2)鼠標控制界面
根據(jù)需求分析以及設(shè)計的鼠標界面確定所需要的類,通過觸摸操作來模擬鼠標操作的方式就是通OnTouchListener來監(jiān)聽用戶對手機屏幕的觸摸操作,分別截獲用戶手指開始觸摸以及觸摸結(jié)束時所處位置的坐標,然后將其間的橫縱坐標的差值作為移動的距離傳給服務(wù)器端。因為把手放在手機屏幕上即便不動實際坐標也會不斷變換,因此需要將捕獲到的新坐標賦給第一次接觸時的坐標fx和fy,否則就會產(chǎn)生只要手不離開鼠標指針就會一直移動的效果。
在鼠標按鍵操作時,為了給用戶反饋按鍵已生效的信息,應(yīng)該在按鈕被按下時改變圖標,直接使用setImageResource的話會導(dǎo)致圖層疊加,看起來會有兩個圖標疊在一起的感覺,所以要使用Handler.post()對UI進行更新,以右鍵的點擊為例。
(3)幻燈片控制界面
根據(jù)需求分析以及設(shè)計的UI確定所需要的類,幻燈片在播放時,主要的操作是翻頁以及全屏和退出全屏,較少用到其它操作,本頁面的主要目的是使用戶脫離有線設(shè)備的局限,使用簡單明了的按鈕對自己的幻燈片進行播放,如果需要其他操作可結(jié)合鼠標控制一并完成,因此幻燈片控制界面只需要四個圖片按鈕即可完成。
(4)MediaPlayer控制界面
根據(jù)需求分析以及設(shè)計的控制界面確定所需要的類,對于MediaPlayer播放器的控制原理與幻燈片控制相同,也是通過OnClickListener對OnClick事件的監(jiān)聽完成信息由客戶端向服務(wù)器端傳送的過程,然后由Robot類模擬鍵盤快捷鍵的操作,從而實現(xiàn)通過手機對MediaPlayer播放器的控制,部分不同的地方是“播放”按鈕和“全屏”按鈕在按下后需要一次UI更新。
經(jīng)過需求分析、設(shè)計和編碼等階段的開發(fā)后,得到了源程序,開始進入測試階段。經(jīng)過模擬器運行測試運行沒有什么問題,但是因為同處于一臺機器,使用同一個輸入設(shè)備,所以對于遙控功能的測試比較勉強。在真機上可以正常運行,并能較好地實現(xiàn)預(yù)定的功能。
點擊菜單鍵彈出相應(yīng)選項,或向左滑動屏幕選擇Media-Player模式并實現(xiàn)跳轉(zhuǎn)。如圖5所示。跳轉(zhuǎn)成功后會有“吐司”彈出成功的提示,如圖6所示。
圖5 鼠標模式運行圖
圖6 MediaPlayer模式運行
系統(tǒng)采用Client/Server結(jié)構(gòu)。實現(xiàn)由客戶端機器向個人計算機開啟的服務(wù)器從指定端口發(fā)送信息,由服務(wù)器端軟件接收、解析信息,并向個人計算機下達指令,完成用戶指定的操作。通過開發(fā)與測試,最終實現(xiàn)了通過Android手機等觸屏設(shè)備對個人電腦的幻燈片、MediaPlayer的直接控制以及通過觸屏模擬電腦觸摸板從而實現(xiàn)模擬鼠標的操作功能。從而方便了用戶對個人電腦的操作,也可以作為鼠標的備用或替代。
[1]Wuzhimin.Android,之父安德魯賓:生而Geek[J].程序員,2010.9.
[2]新浪科技.谷歌推開源移動操作系統(tǒng)33家巨頭加入手機聯(lián)盟[OL].新浪科技,2007.
[3]王然.摩托羅拉欲借Android翻身:占據(jù)50%市場份額[N].經(jīng)濟觀察報,2010.09.25.
[4]Markoff.John.I,Robot:The Man Behind the Google Phone[J].The New York Times,2007.11.04.
[5]Businessweek.Google Buys Android for Its MobileArsenal[OL].Businessweek.com,2005.
PPT Controller Based on Android
Li Shelei Sun Tianyu
(Polytechnical School,Sanya College,Sanya 572022,Hainan)
The design is to control the personal computer by Android mobile device,thus for the remote operation of software or desktop such as slides and MediaPlayer.It completes the MediaPlayer direct control,and the simulation of mouse operation through touch screen.It realizes to operate the slides in the computer through theAndroid mobile phones.
Android;control;client;server
李社蕾,女,河南清豐人,碩士,講師。研究方向:嵌入式開發(fā)、物聯(lián)網(wǎng)應(yīng)用。
三亞學(xué)院校級科研項目,項目編號:XYDF12-2。