李社蕾 孫天宇
(三亞學院理工學院,海南 三亞 572022)
基于Android的幻燈片控制器
李社蕾 孫天宇
(三亞學院理工學院,海南 三亞 572022)
本設計通過Android操作系統的移動設備對個人計算機進行控制,從而對幻燈片、MediaPlayer等軟件或桌面進行遠程操作。完成了MediaPlayer的直接控制以及通過觸屏模擬電腦觸摸板從而實現模擬鼠標的操作功能,實現了通過Android手機等觸屏設備對個人電腦的幻燈片操作。
Android;控制;客戶端;服務器
隨著Android操作系統的快速發展,Android移動設備也不斷增加。遠程控制軟件的發展也到達了一個新領域[1]。幻燈片控制器設計與實現,意在便利使用者的工作與生活[2]。軟件通過Android操作系統的移動設備對個人計算機進行控制,從而實現對于幻燈片、MediaPlayer等軟件或桌面的遠程操作。
2.1 幻燈片控制器PC端服務器設計
服務器端使用Java編寫。需要獲取本機IP,對于用戶填寫的端口號進行合法性的驗證。對于客戶端發送來的信息進行處理反饋,并在個人電腦中執行相應的操作。如圖1所示。
2.3 程序執行流程圖
程序執行過程可大致分為:
(1)準備階段,在PC端啟動用于接收指令的服務器程序監聽設定端口,客戶端獲取用戶填寫IP以及端口號。
(2)信息發送階段:用戶與UI產生互動,客戶端向指定端口發送信息。
(3)信息接收階段:服務器從所監聽端口獲取相應數據并按規則拆分。
(4)響應階段:服務器接收信息后對信息進行相應處理,并對個人電腦進行操作。
流程圖如圖3所示。

圖3 程序執行流程

圖1 服務器端執行流程圖
2.2 幻燈片控制器Android客戶端設計
系統包括幻燈片控制器,鼠標控制器,以及mediaplayer控制器三部分,分別通過觸摸,按鈕對其進行相應的控制操作,如圖2所示。

圖2 客戶端結構圖
3.1 服務器程序
(1)圖形界面的初始化
圖形界面作為用戶與程序交互的窗口,是程序開發中一項不可或缺的重要工作,通過任何語言或者不同的工具實現圖形化的原理都很相像[3],即通過用戶點擊、輸入等操作傳遞信息,對用戶的操作作出響應,創建視圖不僅要有適當的元素,還要進行合理的布局。
(2)信息的監聽
服務器端最重要的功能即時對客戶端發送來的信息進行監聽和處理,Android支持socket通信[4],TCP為了保證不發生丟包,就給每個包一個序號,同時序號也保證了傳送到接收端實體的包的按序接收。然后接收端實體對已成功收到的包發回一個相應的確認(ACK);如果發送端實體在合理的往返時延(RTT)內未收到確認,那么對應的數據包就被假設為已丟失將會被進行重傳。TCP用一個校驗和函數來檢驗數據是否有錯誤;在發送和接收時都要計算校驗和。這也使得TCP是一個繁瑣而且延遲十分大的傳輸方式,相比之下UDP則不需要繁瑣的驗證流程,也不需要接收端作出回應,雖然可能會發生丟包現象但是對操作影響并不大,而與之相比帶來的是良好的實時性。因而在選擇傳輸方式時選擇了UDP。
(3)信息的處理
作為一款遠程控制軟件,僅僅監聽所得到的信息顯然是不夠的,最終的目的是要對用戶的操作做出響應,從而對計算機或其相應的軟件進行控制,已達到便利工作生活的目的。計算機最常用的輸入設備一般為鼠標和鍵盤,所以絕大多數軟件在支持鼠標控制的同時,也支持鍵盤快捷鍵的控制。因此可以使用Robot類來模擬鼠標和鍵盤,對系統下達指令,完成用戶的操作。服務器端連接界面如圖4所示。

圖4 服務器端連接界面圖
3.2 客戶端程序
(1)連接界面
根據需求分析以及設計的用戶界面確定所需要的類,在用戶輸入相應信息之后需要觸發一個事件把該信息發送出去,這個時間就是Click事件,因此需要使用Button來完成該操作,然而用戶不一定了解輸入格式,所以用TextView標簽把輸入格式和要求提供給用戶,即便如此也不能保證用戶一定會有合法的輸入。因為端口號要求是整形,但是通過getText ()獲取到的是字符,如果用戶輸入空置,則在強制轉換的過程中必然會報錯。為了防止上述狀況的發生,則需要在觸發事件時加上異常處理,并使用AlertDialog對用戶進行提示。
(2)鼠標控制界面
根據需求分析以及設計的鼠標界面確定所需要的類,通過觸摸操作來模擬鼠標操作的方式就是通OnTouchListener來監聽用戶對手機屏幕的觸摸操作,分別截獲用戶手指開始觸摸以及觸摸結束時所處位置的坐標,然后將其間的橫縱坐標的差值作為移動的距離傳給服務器端。因為把手放在手機屏幕上即便不動實際坐標也會不斷變換,因此需要將捕獲到的新坐標賦給第一次接觸時的坐標fx和fy,否則就會產生只要手不離開鼠標指針就會一直移動的效果。
在鼠標按鍵操作時,為了給用戶反饋按鍵已生效的信息,應該在按鈕被按下時改變圖標,直接使用setImageResource的話會導致圖層疊加,看起來會有兩個圖標疊在一起的感覺,所以要使用Handler.post()對UI進行更新,以右鍵的點擊為例。
(3)幻燈片控制界面
根據需求分析以及設計的UI確定所需要的類,幻燈片在播放時,主要的操作是翻頁以及全屏和退出全屏,較少用到其它操作,本頁面的主要目的是使用戶脫離有線設備的局限,使用簡單明了的按鈕對自己的幻燈片進行播放,如果需要其他操作可結合鼠標控制一并完成,因此幻燈片控制界面只需要四個圖片按鈕即可完成。
(4)MediaPlayer控制界面
根據需求分析以及設計的控制界面確定所需要的類,對于MediaPlayer播放器的控制原理與幻燈片控制相同,也是通過OnClickListener對OnClick事件的監聽完成信息由客戶端向服務器端傳送的過程,然后由Robot類模擬鍵盤快捷鍵的操作,從而實現通過手機對MediaPlayer播放器的控制,部分不同的地方是“播放”按鈕和“全屏”按鈕在按下后需要一次UI更新。
經過需求分析、設計和編碼等階段的開發后,得到了源程序,開始進入測試階段。經過模擬器運行測試運行沒有什么問題,但是因為同處于一臺機器,使用同一個輸入設備,所以對于遙控功能的測試比較勉強。在真機上可以正常運行,并能較好地實現預定的功能。
點擊菜單鍵彈出相應選項,或向左滑動屏幕選擇Media-Player模式并實現跳轉。如圖5所示。跳轉成功后會有“吐司”彈出成功的提示,如圖6所示。

圖5 鼠標模式運行圖

圖6 MediaPlayer模式運行
系統采用Client/Server結構。實現由客戶端機器向個人計算機開啟的服務器從指定端口發送信息,由服務器端軟件接收、解析信息,并向個人計算機下達指令,完成用戶指定的操作。通過開發與測試,最終實現了通過Android手機等觸屏設備對個人電腦的幻燈片、MediaPlayer的直接控制以及通過觸屏模擬電腦觸摸板從而實現模擬鼠標的操作功能。從而方便了用戶對個人電腦的操作,也可以作為鼠標的備用或替代。
[1]Wuzhimin.Android,之父安德魯賓:生而Geek[J].程序員,2010.9.
[2]新浪科技.谷歌推開源移動操作系統33家巨頭加入手機聯盟[OL].新浪科技,2007.
[3]王然.摩托羅拉欲借Android翻身:占據50%市場份額[N].經濟觀察報,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
李社蕾,女,河南清豐人,碩士,講師。研究方向:嵌入式開發、物聯網應用。
三亞學院校級科研項目,項目編號:XYDF12-2。