【发布时间】:2011-01-20 06:32:43
【问题描述】:
目标:
远程控制 Android 设备。我正在尝试为无法使用触摸屏或 Android 手机或平板电脑上的微型滑出式键盘的身体残疾者制作替代输入设备。我需要能够控制整个 Android 设备 - 发送 KEYCODE_DPAD_DOWN 等击键。将使用操纵杆或其他输入设备,理想情况下,命令将通过蓝牙发送到设备。
这是我现在的位置:
我可以通过 Monkeyrunner 发送这些击键来控制活动设备(感谢 Roman R. 的帮助!)。问题是,这需要将计算机连接到设备并对其进行配置。我想完全从系统中删除计算机,并允许个人完全(远程)控制他们的 Android 设备。也许通过在后台运行的应用程序或服务,处理蓝牙交换并产生相应的按键事件。
到目前为止我的研究:
可以发送 KeyEvents,但这似乎只允许与您自己的应用程序交互 - 例如,在 EditText 框中输入文本。 (link)
也可以(据我了解)在设备上捕获物理键事件并执行一些操作以响应该事件。
最后,Google 似乎确切地知道我想要做什么,但出于安全原因不允许这样做。 (link - 在页面底部有人链接到 this 博客,其中声明这是不允许的。)
我了解实施此类操作可能存在安全问题,但该项目的整个目标是让用户完全(远程)控制 Android 系统。显然,有必要明确要求用户授权此控件。这种控制已经可用,他们称之为Device Administration。这允许应用程序控制系统的非常私密的部分,并且正确地需要明确授权才能这样做。这个遥控系统也不例外。
就我而言,它将用于帮助我的身体残疾的姐姐。您可以使用它来创建飞行控制系统或其他类似游戏手柄的控制器。实现这种接口的原因有很多。
最后,Google 会不断更新 Android,而上面声明无法做到这一点的博客条目已有两年多的历史了。从那以后发生了很多变化......
有人知道怎么做吗?如果还不能完成,您是否知道如何正式请求将新功能添加到 Android 系统中,以便在以后的版本中允许它?
【问题讨论】: