楊永平++詹清林++張東林
摘要:Android是現(xiàn)如今全球手機(jī)用戶使用率最高的操作系統(tǒng),Android具有豐富的傳感器功能和非常強(qiáng)大的應(yīng)用層API,增添了手機(jī)的個(gè)性化服務(wù)。該文將Android手機(jī)與windows計(jì)算機(jī)基于WIFI無(wú)線通信和SOCKET連接建立通信,使用Android手機(jī)對(duì)計(jì)算機(jī)進(jìn)行遠(yuǎn)程無(wú)線控制,可以模擬鼠標(biāo)操作,鍵盤輸入,并控制ppt的播放,手機(jī)輔助課堂。
關(guān)鍵詞:手機(jī)控制;WIFI;手機(jī)輔助課堂
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)11-0160-02
A Remote Control System Between Android Mobile Phone and Computer
YANG Yong-ping, ZHAN Qing-lin, ZHANG Dong-lin
(Beijing Normal University Zhuhai Campus, Zhuhai 519000, China)
Abstract: Now,Android is the world's highest mobile phone operating system,It has rich sensor and a very powerful application layer API,these adds the personalized services of mobile phone. In this paper, the Android mobile phone connect to Windows computer based on WIFI wireless communication and SOCKET connection, use the Android phone to remote wireless control of computer, can simulate the mouse operation, the keyboard input, and control the PPT, can be used as a classroom assistant.
Key words: Mobile phone control; WIFI; classroom assistant
1 緒論
Android是現(xiàn)如今全世界使用最多的智能手機(jī)操作系統(tǒng),由美國(guó)Google 公司開(kāi)發(fā),其系統(tǒng)主要應(yīng)用在平板電腦、智能手機(jī)等移動(dòng)終端領(lǐng)域。由于手機(jī)不斷強(qiáng)化的功能和便捷性,手機(jī)逐漸成為了個(gè)人信息控制中心。實(shí)際工作中,計(jì)算機(jī)是我們的計(jì)算中心和數(shù)據(jù)存儲(chǔ)中心,計(jì)算機(jī)的運(yùn)算能力和存儲(chǔ)能力還無(wú)法被取代,我們的很多工作還需要計(jì)算機(jī)完成,讓手機(jī)與計(jì)算機(jī)配合,通過(guò)手機(jī)發(fā)送指令給計(jì)算機(jī),執(zhí)行結(jié)果傳回手機(jī),是當(dāng)前很實(shí)用的功能。
國(guó)外對(duì)于智能手機(jī)遠(yuǎn)程控制的研發(fā)有許多成果及應(yīng)用,如智能手機(jī)與智能家電的遠(yuǎn)程控制,智能手機(jī)與計(jì)算機(jī)屏幕的無(wú)縫連接控制等(如蘋果手機(jī)與蘋果電腦的屏幕無(wú)縫交互),智能手機(jī)充當(dāng)遠(yuǎn)程遙控器,控制汽車啟動(dòng)熄火,控制智能門開(kāi)關(guān)等。隨著物聯(lián)網(wǎng)技術(shù)的提升,如今許多設(shè)備都已經(jīng)獨(dú)立連上了網(wǎng)絡(luò),像智能家居,供電設(shè)備等都連接在自己的網(wǎng)絡(luò)中,當(dāng)發(fā)生系統(tǒng)錯(cuò)誤的時(shí)候,就會(huì)發(fā)送命令給遠(yuǎn)程服務(wù)器,請(qǐng)求系統(tǒng)修復(fù)錯(cuò)誤或者恢復(fù)初始狀態(tài),大大減少了人員維護(hù)的工作量,實(shí)用性非常高。
手機(jī)的通信連接方式主要有WIFI連接,蜂窩網(wǎng)絡(luò)連接,NFC,藍(lán)牙等,WIFI連接由于其低成本高速率、運(yùn)行環(huán)境兼容性高,成為在一個(gè)有限范圍內(nèi)優(yōu)先選擇的通信方式。
在課堂教學(xué)中,計(jì)算機(jī)及多媒體系統(tǒng)已經(jīng)普遍被采用,為了控制計(jì)算機(jī),教師不得不站到講桌前控制多媒體操作計(jì)算機(jī)的鍵盤和鼠標(biāo)。大學(xué)課堂一般人數(shù)較多教室較大,如果教師一直在講臺(tái)上與學(xué)生容易產(chǎn)生距離感,也不利于給學(xué)生增加一定的緊張感,不利于學(xué)生的主動(dòng)性的調(diào)動(dòng)。電子教鞭可以幫助翻閱電子幻燈片,但是它的功能較單一,且增加了設(shè)備,對(duì)方便度造成影響。使用隨身攜帶的手機(jī)對(duì)多媒體教學(xué)計(jì)算機(jī)進(jìn)行操作,不但功能更強(qiáng),而且沒(méi)有增加任何設(shè)備。本文實(shí)現(xiàn)一個(gè)通過(guò)計(jì)算機(jī)遠(yuǎn)程控制計(jì)算機(jī)的軟件系統(tǒng),使手機(jī)成為課堂的好助手。
2 andriod手機(jī)與計(jì)算機(jī)的無(wú)線連接技術(shù)
Android是基于Linux內(nèi)核的軟件平臺(tái)和操作系統(tǒng),是Google在2007年11月5日公布的手機(jī)系統(tǒng)平臺(tái),早期由Google開(kāi)發(fā),后由開(kāi)放手機(jī)聯(lián)盟(Open Handset Alliance)開(kāi)發(fā),對(duì)于掌上設(shè)備的硬件提供了優(yōu)秀的支持,同時(shí)有大量立即可用的類庫(kù)和應(yīng)用軟件,可開(kāi)發(fā)出媲美桌面應(yīng)用復(fù)雜度的手機(jī)軟件。Google提供了基于Eclipse的完整開(kāi)發(fā)環(huán)境,模擬器,文檔,幫助和示例,容易實(shí)施。
WIFI,就是無(wú)線保真技術(shù),是一種高頻無(wú)線、可以將個(gè)人電腦,手持設(shè)備以無(wú)線方式相互鏈接的技術(shù),具有以下特點(diǎn)(1)功耗低;2)更健康更安全,WIFI的實(shí)際發(fā)射功率為60-70毫瓦,對(duì)人體輻射很低,不用接觸人體,安全系數(shù)高;(3)度更快,可靠性高,WIFI的最高寬帶能夠達(dá)到11Mbps,其還可以根據(jù)信號(hào)的強(qiáng)弱自動(dòng)調(diào)整帶寬大小,提供了一個(gè)穩(wěn)定、可靠的網(wǎng)絡(luò)環(huán)境;(4)建網(wǎng)成本低,構(gòu)建WIFI網(wǎng)絡(luò)只需無(wú)線接入點(diǎn)和無(wú)線網(wǎng)卡即可,簡(jiǎn)化了網(wǎng)絡(luò)的安裝工作。
Socket又稱為“套接字”,包含IP地址和端口,C/S結(jié)構(gòu)網(wǎng)絡(luò)應(yīng)用程序利用Socket網(wǎng)絡(luò)通信接口來(lái)實(shí)現(xiàn)客戶端(手機(jī)端)與服務(wù)端(計(jì)算機(jī))的通信,在利用Socket建立網(wǎng)絡(luò)連接成功時(shí),應(yīng)用程序兩端都會(huì)產(chǎn)生一個(gè)收發(fā)實(shí)例,程序員操作這個(gè)實(shí)例,完成所需的會(huì)話。本系統(tǒng)可用于教師教學(xué)輔助,手機(jī)客戶端與計(jì)算機(jī)服務(wù)端采用tcp方式建立連接,教師在一個(gè)教室里移動(dòng)可以保證連接的穩(wěn)定性。
3 android手機(jī)與計(jì)算機(jī)交互系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)
3.1 系統(tǒng)功能需求分析
根據(jù)對(duì)日常計(jì)算機(jī)最常用功能的分析,本系統(tǒng)設(shè)計(jì)功能包括以下三個(gè)部分:無(wú)線鼠標(biāo),無(wú)線鍵盤,PPT助手。
3.2 系統(tǒng)功能實(shí)現(xiàn)
客戶端,負(fù)責(zé)接受用戶的輸入,并轉(zhuǎn)換為相應(yīng)的命令,向服務(wù)器端發(fā)送指令,服務(wù)端使用TCP協(xié)議接受客戶端發(fā)來(lái)的數(shù)據(jù),將控制層的指令發(fā)送給應(yīng)用層。應(yīng)用層解釋并執(zhí)行命令,同時(shí)負(fù)責(zé)更新顯示狀態(tài)。
1)客戶端向服務(wù)器發(fā)送指令:
public void sendMessage(String str)
{
try { //將要發(fā)送的數(shù)據(jù)寫入outputstream
DataOutputStream.writeBytes (str);
this.dataOutputStream.flush(); //確保所有數(shù)據(jù)發(fā)送
}
catch (IOException e) {
// TODO: handle exception
}
}
2)鼠標(biāo)功能:
鼠標(biāo)左鍵點(diǎn)擊實(shí)現(xiàn)代碼:
public void leftClick(float x, float y) {
try {
String message = buildMessage(MOUSE,LEFT_CLICK, x, y);
this.mConnector.sendMessage(message);
} catch (Exception e) { 鼠標(biāo)觸摸感應(yīng)區(qū)
}
}
3)鍵盤功能
鍵盤功能主要是監(jiān)控輸入edit的內(nèi)容變化,當(dāng)發(fā)生內(nèi)容變化時(shí),發(fā)送edit的內(nèi)容到服務(wù)器端。
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
try {
str = edt_keybaord.getText().toString();
String message =buildMessage(KEYBOARD,INPUTSTRING, str,0)
mConnector.sendMessage(message);
} catch (Exception e) {
}
}
4)ppt播放控制
ppt播放器,要求ppt處于打開(kāi)狀態(tài),可發(fā)送的控制命令包括開(kāi)始播放、停止播放、下一頁(yè)、上一頁(yè)等。
public void onClick(View v) {
switch(v.getId())
case R.id.btn_ppt_next:
String message =buildMessage(PPT,PLAY_NEXT, 0,0)
mConnector.sendMessage(message);
} catch (Exception e) {
}
}
4 系統(tǒng)功能測(cè)試
測(cè)試結(jié)果如下:
客戶端與服務(wù)器通過(guò)wifi連接建立:成功建立tcp連接
網(wǎng)絡(luò)傳輸模塊:能正確收發(fā)預(yù)期的數(shù)據(jù)
UI界面:正常啟動(dòng),能滿足用戶操作需求
鼠標(biāo)操作:能正確識(shí)別鼠標(biāo)左鍵單擊,右鍵單擊
鼠標(biāo)移動(dòng)也比較準(zhǔn)確
鍵盤操作:能正確發(fā)送字符串
ppt助手:能控制幻燈片的播放,前進(jìn)、后退、播放、退出幾個(gè)常用功能
5 結(jié)語(yǔ)
本文設(shè)計(jì)了一個(gè)基于WIFI無(wú)線網(wǎng)絡(luò)的交互式軟件系統(tǒng),由Andorid手機(jī)控制計(jì)算機(jī),模擬了鼠標(biāo)功能,鍵盤功能以及PPT助手,并對(duì)開(kāi)發(fā)過(guò)程進(jìn)行了詳細(xì)介紹。運(yùn)行該軟件只需要手機(jī)與計(jì)算機(jī)處于同一網(wǎng)段、能聯(lián)通即可,該軟件系統(tǒng)對(duì)于講座、教師上課等場(chǎng)合有較高實(shí)用價(jià)值,不需要另外的硬件設(shè)備。對(duì)于平板等終端設(shè)備,還可以繼續(xù)在此基礎(chǔ)上添加模擬全鍵盤功能,以及控制更多的軟件。為了安全起見(jiàn),允許服務(wù)端設(shè)定口令,客戶端接入和連接時(shí)需要提供口令。
(下轉(zhuǎn)第166頁(yè))
(上接第161頁(yè))
參考文獻(xiàn):
[1] 陳法海, 楊斌. Android系統(tǒng)中Wi-Fi網(wǎng)絡(luò)的研究與實(shí)現(xiàn)[J]. 成都信息工程學(xué)院學(xué)報(bào), 2010(5).
[2] 李倩, 付蔚, 洪陽(yáng). 基于Android的無(wú)線控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 物聯(lián)網(wǎng)世界, 2014(2).
[3] 陳文, 郭依正. 深入理解Android網(wǎng)絡(luò)編程[M]. 北京: 機(jī)械工業(yè)出版社, 2013(8).
[4] 李杜. 基于Android平臺(tái)的無(wú)線鼠標(biāo)設(shè)計(jì)與實(shí)現(xiàn)[D]. 蘭州大學(xué), 2012.
[5] 肖梁軍. 基于Android智能終端的遠(yuǎn)程控制電腦系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D]. 云南大學(xué), 2012.