首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

多网络和Linux代理的Android无线远程控制系统 03

多网络和Linux代理的Android无线远程控制系统 03

管理应用:安装应用分两步实现,第一步接收文件,第二步执行安装。第一步实现与上面所讲的接收文件相同,只是报文为"install‖n ame.apk".默认保存到SD卡上的mnt/sdcard/apk路径下,然后,调用agent执行shell安装命令install mnt/sdeard/apk/name.apk.卸载应用时,直接执行接收到的命令uninstall packagename.启动应用时,通过Android系统接口Intent实现,停止和卸载都是通过被控终端上的Agent代理实现。"start‖appName"启动应用的时候,通过本地包管理获取到appName对应的包名packageName,新建一个Intent,启动包含该包的应用。代码如下:


  通过shell命令执行kill PID.PID是应用进程号,通过ActivityManager可以获取到。

  设备控制:可以通过命令例如"shell‖reboot"直接控制重启。

  3.4 Agent代理实现

  在编译系统内核的时候,将agent_server编入到路径/data/agentserver/agent_server下,用以接收命令。调用的时候,通过建立一个本地Socket,通过数据流发送shell命令到agent_setwer所在路径,实现通信。当agent_server接收到命令后,执行shell命令。

  4 测试结果

  设计的系统在ZTE U880手机上连接WiFi进行测试。图3为控制端界面,图4为控制端发送消息,图5为被控终端接收消息,图6为发送文件,图7为远程安装应用软件,图8为远程卸载应用软件,图9为shell命令界面。测试结果表明,系统能够实现发送消息、发送文件、安装和卸载应用,以及执行shell命令实现系统重启功能。



  结语

  本文设计了一个采用C/S模式实现的Android远程控制系统。控制端与被控终端之间采用Socket进行网络通信,在知道对方SIM卡号的情况下,也能通过GSM发送短信通信,能够实现多种网络的稳定通信。通过Linux代理能够实现root权限的操作,理论上可以实现对Android系统的完全远程控制。

返回列表