關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 多網絡和Linux代理的Android無線遠程控制系統

        多網絡和Linux代理的Android無線遠程控制系統

        作者: 時間:2013-01-11 來源:網絡 收藏

        2. 2 控制端設計
        Android控制端在使用WiFi和GPRS網絡時,通過Socket進行通信,可以實現全部的命令;在使用GSM網絡時,通過短消息發送命令進行控制,只能發送部分操作指令,不能進行的操作包括發送文件、應用程序等需要通過IP地址進行通信的操作。
        Sqlite數據庫保存被控終端的信息數據和操作日志。Linux文件系統保存需要發送的文件和應用程序等。Android控制端具體功能設計如下:
        ①自動注冊:編寫Java程序通過接口調用MulticastSocket發送請求注冊廣播,并監控端口,接收被控終端的注冊廣播。
        ②發送消息:通過已注冊的被控終端IP地址,編程調用Socket接口發送消息到被控終端,并監聽端口,接收反饋消息。
        ③發送文件:編寫監控程序調用Socket端口進行通信,調用Android文件系統,讀取存儲在SD卡上的文件進行發送。
        ④發送控制命令:有兩種方式,一種通過Socket發送控制命令到被控終端IP;另一種通過GSM網絡發送特定格式的短消息到被控終端手機,實現命令控制設備。
        2.3 被控終端設計
        Android被控終端沒有監控界面,只有一個后臺服務和一個Agent代理,該代理也是一個后臺服務,不過這個服務是集成在版本中的。
        本地后臺服務會隨系統啟動而啟動,啟動后會建立一個線程(Thread),線程通過Socket監聽本機的通信端口;同時,還會建立一個廣播接收器(BroadcastReceiver),用于接收通過GSM網絡發來的短消息廣播。當Socket端口監聽線程監聽到數據時,先判斷其是否為控制端的注冊請求。如果是,則反饋信息到控制端注冊;如果不是,則判斷是否為命令。如果是命令,則交給Agent代理執行;如果不是,再判斷其是否為消息。如果是消息,則調用Android的Activity顯示消息;如果不是,則繼續判斷其是否為文件。如果是文件,則保存文件到文件系統中;如果不是,則退出,丟棄該消息。當廣播接收器接收到GSM短信時,后臺服務對消息進行判斷,看其是否為控制命令。如果是命令,則GSM短信會被截斷,被控終端用戶不會提示收到短消息,然后,將命令傳遞給Agent代理進行執行,調用接口對應的功能模塊執行。最后,將執行結果通過Socket反饋給控制端。其對應的功能模塊設計流程圖如圖2所示。

        本文引用地址:http://www.104case.com/article/159562.htm

        d.JPG



        3 具體實現
        3.1 通信實現
        該系統的總體設計思路是;一定數量的Android終端用戶群之間,有一個作為控制端,其余的是被控終端,通過WiFi無線網、GPRS網絡進行通信,控制端發送命令到被控終端執行,采用C/S結構。
        (1) GPRS網絡和WiFi網絡通信實現
        首先,在控制終端和被控端都建立一個TCP端口監聽線程。分別建立一個ServerSocket,能各自監聽自己的TCP端口,端口地址分別為:控制端為10000,被控終端10001。被控終端監聽控制端發送命令信息,命令放在報頭中,而文件等內容放在數據流中;命令會被執行并保存到數據中,文件會保存到SD卡上,等待被命令調用執行,在此,完成TCP通信。另外,控制端和被控端各自創建一個MulticastSocket對象,并加入一個組播地址,地址為234.0.0.1,控制端的端口為10002,被控終端端口為10003。控制端用以監聽被控終端發送的登錄廣播信息;被控終端監聽控制端發送的連接請求;當接收到組播UDP包后,取得源IP地址和源ID,將信息保存到本地數據庫中,完成通信。
        (2) GSM網絡通信實現
        如果在GPRS和WiFi都不通的情況下,使用GSM短信發送命令。具體如下:在被控制端建立一個Broadcast Receiver,接收系統短信廣播,并將優先級設置為2147483674最高級別,這樣會優先于其他方式先對短信內容進行處理。當有短信進入被控終端時,Broadcast Receiver會優先截取到短信內容,首先判斷該短信是否為控制命令。如果是,則將命令發送到Service執行,同時截斷廣播,這樣手機收件箱就不會收到該條短信。
        e.JPG
        3.2 控制端實現
        控制端包括5個大的模塊:操作界面、自動注冊、發送消息、發送文件、應用管理。
        操作界面:操作界面是基于應用層和應用框架層實現的。調用Android組件庫中的Activity組件和ListActivity組件顯示操作列表;點擊列表按鈕等組件用來調用操作命令;通過界面操作生成對應的命令發送到被控終端,并顯示反饋結果。

        linux相關文章:linux教程




        評論


        技術專區

        關閉
        主站蜘蛛池模板: 新民市| 儋州市| 南开区| 临高县| 曲阜市| 吴川市| 辛集市| 文登市| 蕲春县| 望谟县| 鸡东县| 永安市| 遂平县| 江西省| 安远县| 安福县| 望奎县| 宜黄县| 吉林市| 伊宁市| 康马县| 泸定县| 会同县| 杨浦区| 织金县| 鄱阳县| 平凉市| 化州市| 固原市| 义乌市| 乡城县| 敦化市| 恩平市| 额敏县| 邯郸县| 滕州市| 璧山县| 广南县| 成安县| 银川市| 扎赉特旗|