引言
随着智能系统的高速发展和智能移动终端的普及,在政府部门和企事业单位,员工使用Android系统的智能终端(包括手机和平板电脑)办公越来越多,利用网络对移动终端进行控制和管理,十分必要,目前的远程控制大多基于应用层实现,只能对特定的一些应用或者上层的一些权限进行管理和控制,不能对Android终端实现真正意义上的完全控制。另外,这些远程控制只是基于单个网络实现,不能保证远程控制的稳定实现。
本文研究的这种控制系统,可以采用多种网络进行通信,包括WiFi、GPRS和GSM三种网络。利用Android底层基于Linux系统实现的特性,在Linux底层建立一个Agent,获取系统签名,能够执行需要获取到root权限的shell命令,实现对整个系统的完全控制。
1 无线远程控制系统构架
基于多网络(GPRS、WiFi、GSM)进行通信、通过Linux代理实现操作的无线远程控制系统,主要对多种网络通信方式进行适应性设计,以及对Android智能终端的系统设置、文件系统以及设备进行控制。
系统基本功能包括:自动注册、发送消息、发送文件、管理应用程序、发送shell命令控制设备等。
基于Linux代理的Android智能终端无线远程控制系统主要由3部分组成:控制端、被控终端和通信网络。系统的架构图如图1所示。
2 无线远程控制系统设计
2.1 多网络通信设计
Android智能终端目前支持的网络有:GPRS无线网络和WiFi无线网络。WiFi无线网络的优点是网速快,缺点是有范围和信号强度的要求。而GPRS的优缺点和WiFi无线网络正好相反。目前,GPRS的2G网络传输速率在50 kb/s左右,3G网络速度更快,如果采用WiFi网络接入到Internet,速度甚至可以达到1 Mb/s.速度上完全可以达到远程控制中传输命令的速率要求。 本系统采用多网络方式:优先选择WiFi无线网络,其次采用GPRS网络,最后采用GSM发送短消息控制。采用WiFi无线网络和GPRS网络的时候,Android终端之间通过Socket进行通信。 如果该系统只是应用在局域网内,就只能使用WiFi无线网络;如果应用在远程或者广域网上,就可以使用WiFi无线网络和GPRS网络两者相结合的方式;如果没有WiFi和GPRS,才使用GSM网络。 在广域网内使用时,当被控终靖启动系统的时候,会采用UDP方式向广域网发送登录广播,或者采用TCP协议向特定的控制端IP发送注册信息。控制端接收到信息后,注册到本机,然后通过TCP方式发送控制命令进行远程控制。 在没有WiFi和GPRS的情况下,也可以采用GSM网络发送短消息命令进行一些简单的控制操作,例如:打开WiFi、打开GPRS网络等,使其可以使用上述两种网络进行控制。使用GSM网络的前提条件是需要知道被控终端的SIM号码。 2. 2 控制端设计 Android控制端在使用WiFi和GPRS网络时,通过Socket进行通信,可以实现全部的命令;在使用GSM网络时,通过短消息发送命令进行控制,只能发送部分操作指令,不能进行的操作包括发送文件、应用程序等需要通过IP地址进行通信的操作。 Sqlite数据库保存被控终端的信息数据和操作日志。Linux文件系统保存需要发送的文件和应用程序等。Android控制端具体功能设计如下: ①自动注册:编写Java程序通过接口调用MulticastSocket发送请求注册广播,并监控端口,接收被控终端的注册广播。 ②发送消息:通过已注册的被控终端IP地址,编程调用Socket接口发送消息到被控终端,并监听端口,接收反馈消息。 ③发送文件:编写监控程序调用Socket端口进行通信,调用Android文件系统,读取存储在SD卡上的文件进行发送。 ④发送控制命令:有两种方式,一种通过Socket发送控制命令到被控终端IP;另一种通过GSM网络发送特定格式的短消息到被控终端手机,实现命令控制设备。 |