劉錦培
摘要:文章通過(guò)無(wú)線網(wǎng)絡(luò)通信和SOCKET套接字技術(shù),利用JAVA語(yǔ)言在Eclipse和ADT平臺(tái)上,實(shí)現(xiàn)了Android手機(jī)遠(yuǎn)程控制計(jì)算機(jī)和模擬鼠標(biāo)滑動(dòng)、鍵盤鍵入以及控制計(jì)算機(jī)軟件開(kāi)關(guān)等各類操作。
關(guān)鍵詞:Android手機(jī);遠(yuǎn)程控制計(jì)算機(jī);無(wú)線網(wǎng)絡(luò)
1前言
Android是一種以Linux為基礎(chǔ)的開(kāi)放源代碼的操作系統(tǒng),是目前全世界用戶使用最多、涵蓋范圍最廣的系統(tǒng)之_,主要用于手機(jī)、平板電腦及汽車GPS導(dǎo)航等一些便攜設(shè)備。由于Android系統(tǒng)的開(kāi)源和支持開(kāi)發(fā)者使用多種編程語(yǔ)言開(kāi)發(fā)Android應(yīng)用程序,Android手機(jī)的功能性和智能化都得到了極大的提升,并且逐漸成為個(gè)人的信息控制中心,自然而然成為人們生活中不可或缺的產(chǎn)品。
隨著技術(shù)的發(fā)展,在未來(lái)智能手機(jī)很有可能將完全替代計(jì)算機(jī)。目前,由于軟硬件技術(shù)及手機(jī)體積的限制,Android手機(jī)還無(wú)法取代計(jì)算機(jī)。在實(shí)際應(yīng)用中,計(jì)算機(jī)憑借其巨大的存儲(chǔ)能力以及極快的運(yùn)算速度,很多情況下我們?nèi)孕枰?jì)算機(jī)的協(xié)助。由于計(jì)算機(jī)攜帶的不便性,通過(guò)讓手機(jī)和計(jì)算機(jī)配合使用,使用手機(jī)發(fā)送指令給計(jì)算機(jī),計(jì)算機(jī)運(yùn)算結(jié)果傳回手機(jī),這是目前使用較為廣泛的一種智能技術(shù)。
信息化技術(shù)的飛速發(fā)展,板書(shū)與多媒體技術(shù)的配合教學(xué)是現(xiàn)代化教學(xué)中最為常用的教學(xué)手段,為了保證計(jì)算機(jī)得到有效的控制,教師往往不得不站到計(jì)算機(jī)前控制計(jì)算機(jī)的鼠標(biāo)和鍵盤。高校為了方便開(kāi)設(shè)公開(kāi)課或可以讓很多學(xué)生同時(shí)進(jìn)行上課,高校教室的空間一般都設(shè)置得比較大且座位相互間隔也比較遠(yuǎn)。如果教師一味的站在計(jì)算機(jī)前操作計(jì)算機(jī),那么很容易與學(xué)生產(chǎn)生距離感,無(wú)法及時(shí)注意學(xué)生的聽(tīng)課狀態(tài)以及學(xué)習(xí)知識(shí)的反應(yīng),非常不利于教學(xué)的進(jìn)行。雖然無(wú)線激光筆可以通過(guò)按下激光筆上的上、下翻頁(yè)按鈕,實(shí)現(xiàn)電子文檔的翻閱和演示,但是無(wú)法實(shí)現(xiàn)鼠標(biāo)及鍵盤的控制操作,功能單一,并且需要購(gòu)買設(shè)備。如果可以使用手機(jī)操控多媒體計(jì)算機(jī),不但不用增加外部設(shè)備,且更具有通用性。以下闡述如何通過(guò)Android手機(jī)實(shí)現(xiàn)遠(yuǎn)程控制計(jì)算機(jī)的軟件系統(tǒng),并操作鼠標(biāo)和鍵盤。
2 Android手機(jī)與計(jì)算機(jī)的無(wú)線通信技術(shù)與Socket編程
智能手機(jī)的網(wǎng)絡(luò)通信連接方式主要有:WFIF無(wú)線網(wǎng)絡(luò)連接、蜂窩數(shù)據(jù)連接、NFC和藍(lán)牙連接等,其中WIFI無(wú)線網(wǎng)絡(luò)連接方式是運(yùn)行成本最低、網(wǎng)絡(luò)環(huán)境最穩(wěn)定的連接方式,但是這種連接方式會(huì)受到范圍的限制。
所謂的WIFI就是指無(wú)線保真技術(shù),是一種可以通過(guò)無(wú)線的方式將移動(dòng)終端和計(jì)算機(jī)相互連接的網(wǎng)絡(luò)技術(shù),其本質(zhì)是一個(gè)高頻無(wú)線電信號(hào),主要具有以下特點(diǎn):
(1)相對(duì)于其它網(wǎng)絡(luò)連接方式,WIFI無(wú)線網(wǎng)絡(luò)連接的功耗比較低。
(2)更加的安全,無(wú)線網(wǎng)絡(luò)的無(wú)線信號(hào)發(fā)射功率在60~70毫瓦之間,對(duì)人體來(lái)說(shuō)基本沒(méi)有輻射上的傷害,并且不需要人體的接觸,相對(duì)的較為安全。
(3)速度更快,最大帶寬可以達(dá)到11Mbps,并且用戶還可以根據(jù)信號(hào)的強(qiáng)度調(diào)整帶寬的大小,從而為使用人員提供一個(gè)穩(wěn)定、持續(xù)和有效的網(wǎng)絡(luò)環(huán)境。
(4)減本較低,想要在一個(gè)空間內(nèi)形成一個(gè)無(wú)線網(wǎng)絡(luò)環(huán)境,只需要一個(gè)無(wú)線網(wǎng)絡(luò)接入點(diǎn)和一張無(wú)線網(wǎng)卡即可,大大簡(jiǎn)化了網(wǎng)絡(luò)安裝的過(guò)程。
Socket通常也稱為“套接字”,是一個(gè)通信鏈句柄,包含IP地址和端口。其中IP地址是主機(jī)在Internet上的唯一標(biāo)識(shí),協(xié)議和端口是主機(jī)進(jìn)程的唯一標(biāo)識(shí)。Socket通過(guò)協(xié)議、IP地址以及端口組合成一個(gè)標(biāo)識(shí),實(shí)現(xiàn)網(wǎng)絡(luò)進(jìn)程間的通信,Socket的應(yīng)用非常廣泛,是網(wǎng)絡(luò)通信最重要和最常用的—種方式。
在JDK1.7的java.net包中有Socket和ServerSocket類庫(kù),ServerSocket用在服務(wù)端,Socket用在客戶端,用于建立網(wǎng)絡(luò)連接。一旦網(wǎng)絡(luò)連接建立成功,應(yīng)用程序兩端會(huì)產(chǎn)生一個(gè)Socket實(shí)例,并通過(guò)操作這個(gè)Socket實(shí)例實(shí)現(xiàn)會(huì)話。為了確保Android手機(jī)與計(jì)算機(jī)之間連接的穩(wěn)定性,本系統(tǒng)采用面向連接的TCP協(xié)議建立連接。
一個(gè)TCP協(xié)議的Socket會(huì)話,其工作流程如下:
首先,創(chuàng)建一個(gè)ServerSocket對(duì)象,并分配端口號(hào)。這里端口號(hào)的設(shè)置原則建議取1024到65535之間,因?yàn)?024以下是一些已定義或者保留下來(lái)的端口。
ServerSocket ss=new ServerSocket(9333);
當(dāng)Android手機(jī)端發(fā)起Socket連接且端口號(hào)為9333時(shí),此時(shí)計(jì)算機(jī)的ss對(duì)象會(huì)響應(yīng)該連接,并調(diào)用accept()方法創(chuàng)建一個(gè)Socket對(duì)象。我們用這個(gè)socket對(duì)象與Android手機(jī)端進(jìn)行通信,再通過(guò)輸入輸出流來(lái)完成數(shù)據(jù)的讀寫操作。
其次,Android手機(jī)端根據(jù)服務(wù)端計(jì)算機(jī)的IP地址和端口號(hào)來(lái)創(chuàng)建一個(gè)socket對(duì)象,其中“192.168.1.201”為IP地址,9333為端口號(hào)。
Socket sc=new Socket("192.168.1.201",9333);
最后,使用send方法和receive方法來(lái)發(fā)送和接收消息,通信流程如圖1所示。
3交互式系統(tǒng)Android手機(jī)端的設(shè)計(jì)與實(shí)現(xiàn)
3.1交互式系統(tǒng)Android手機(jī)端的總體設(shè)計(jì)
根據(jù)高校多媒體教室的計(jì)算機(jī)較常用的功能,本文所設(shè)計(jì)的Android手機(jī)端的功能模塊結(jié)構(gòu)如圖2所示,由無(wú)線鼠標(biāo)模塊、無(wú)線鍵盤模塊、系統(tǒng)設(shè)置模塊及PPT無(wú)線控制模塊組成,其界面如圖3所示。
3.2交互式系統(tǒng)Android手機(jī)端的功能實(shí)現(xiàn)
Android手機(jī)端的任務(wù)就是幫助用戶完成輸入任務(wù),并且將其轉(zhuǎn)化為相應(yīng)的指令,然后向計(jì)算機(jī)發(fā)送指令,計(jì)算機(jī)使用TCP協(xié)議接受Android手機(jī)端發(fā)來(lái)的指令,然后將控制層的指令傳遞給應(yīng)用層。應(yīng)用層在接受到指令的同時(shí),解釋并執(zhí)行命令,并且更新相應(yīng)的顯示狀態(tài)。
4遠(yuǎn)程操控軟件功能測(cè)試
Android手機(jī)遠(yuǎn)程控制計(jì)算機(jī)的應(yīng)用系統(tǒng)經(jīng)過(guò)試驗(yàn)測(cè)試得到以下結(jié)果:Android手機(jī)客戶端與計(jì)算機(jī)服務(wù)器成功建立連接,并能夠按照預(yù)期設(shè)計(jì)收發(fā)相應(yīng)的數(shù)據(jù)。進(jìn)行遠(yuǎn)程操作時(shí),UI界面運(yùn)行正常且流暢度較高,能夠滿足實(shí)際的需求。手機(jī)模擬鼠標(biāo)的各類操作能夠正確識(shí)別,模擬鍵盤能夠正確發(fā)送手機(jī)所鍵入的字符串。PPT無(wú)線控制效果能夠達(dá)到預(yù)期的要求,但技術(shù)還存在一些不足,仍有很大的提升空間。
5結(jié)語(yǔ)
文章通過(guò)無(wú)線通信和Socket編程等技術(shù)實(shí)現(xiàn)了Android手機(jī)控制計(jì)算機(jī)的交互系統(tǒng),包括模擬鼠標(biāo)點(diǎn)擊移動(dòng)控制、鍵盤輸入和PPT無(wú)線控制,并對(duì)開(kāi)發(fā)和實(shí)現(xiàn)過(guò)程進(jìn)行詳細(xì)的描述和分析。其運(yùn)行環(huán)境只要求Android手機(jī)和服務(wù)端計(jì)算機(jī)處于同一網(wǎng)絡(luò)環(huán)境下,無(wú)需其他設(shè)備,適用于高校課堂教學(xué)中。遠(yuǎn)程控制技術(shù)還有很大的發(fā)展空間,其功能也將越來(lái)越強(qiáng)大,將會(huì)更深入地滲透到我們生活中。