手机相互操控的思路

这几天正在研究设备相互操控的问题,因为我们想要将手机变成一个游戏控制器 。通过手机,操控智能电视里面的所有游戏(目前只实现了通过手机操控电视) 。
需要先做一个安卓手机之间相互操控的demo,来验证技术方便的可行性 。
查了一些资料,现将自己的想法整理出来 。没做实现,仅供参考 。
设备操控需要考虑一下几个问题:
1)设备链接要求稳定,不丢包
2)链接方式足够简单
基于以上两个考虑,公司放弃了使用蓝牙 。因为蓝牙链接需要搜索和配对设备,这需要漫长的等待 。而对于智能电视来说,可能没有蓝牙模块 。权衡利弊,最终敲定使用Wifi作为数据交换的通道 。

手机相互操控的思路

文章插图
无论使用蓝牙也好,wifi也好,无非是一个数据交换的方式 。但是设备的相互控制无论如何也绕不开权限这一关,我的目的就是想在不请求系统Root权限的前提下,如何去控制设备 。
方案一:
这个方案来解决相互操控的问题,但是通信的数据是基于蓝牙传输的 。可以来参考它的操控实现方式 。这款应用叫做,谷歌商店可以下载 。
可以实现两台手机之间的相互控制,如下图 。
手机相互操控的思路

文章插图
但是控制仅限于系统按键,比如回退,主页,菜单 。该应用虽然有一个游戏控制界面,但经过测试,不能控制另外一台手机上的游戏 。
个人觉得已经很牛逼了,完全没有敏感权限,到底是如何做到的呢 。本着学习的精神,将其反编译后发现,该应用做了一个类似输入法的程序,通过取代系统输入法实现对系统的操控(具体细节待研究) 。
手机相互操控的思路

文章插图
方案二:
这个方案来解决Wifi 以及按键的发送问题 。这个应用叫做,它可以将手机化身为无线鼠标,可以控制PC鼠标的左键,右键,滚轮以及简单的文字输入,基本是我们想要的功能 。PC端需要安装服务端才可以,兼容Win平台,Linux,和Mac。如图
手机相互操控的思路

文章插图
既然兼容Linux平台,那么两台设备之间的控制,应该不是问题,重要的是我们需要对它的服务端进行改造 。
这款应用使用了开源框架Java OSC,来处理通信 。服务端和客户端源码均可以拿到,大家自己去反编译吧 。
方案一解决了手机相互操控问题,方案二解决了手机通信问题 。不知道能不能将这个两个结合起来,实现两台手机通过wifi相互操控的问题 。进一步研究中……
原文链接:
【手机相互操控的思路】欢迎访问:望月听涛