android - Android 设备的远程控制 - 模拟任何已安装应用程序的物理击键?

标签 android bluetooth

目标:

Android 设备的远程控制。我正在尝试为无法在 Android 手机或平板电脑上使用触摸屏或微型滑出式键盘的残障人士制作备用输入设备。我需要能够控制整个 Android 设备 - 发送 KEYCODE_DPAD_DOWN 等击键。将使用操纵杆或其他输入设备,理想情况下,命令将通过蓝牙发送到设备。

这是我现在的位置:

我可以通过 Monkeyrunner 发送这些击键来控制 Activity 设备(感谢 Roman R. 的帮助!)。问题是,这需要一台计算机连接到设备并配置为对其进行编程。我想从系统中完全消除计算机,并允许个人完全(远程)控制他们的 Android 设备。也许通过在后台运行的应用程序或服务,处理蓝牙交换并产生相应的关键事件。

我目前的研究:

可以发送 KeyEvents,但这似乎只允许与您自己的应用程序交互 - 例如,将文本输入 EditText 框。 ( link )

也有可能(据我所知)在设备上捕获物理按键事件并执行一些操作以响应该事件。

最后,Google 似乎完全知道我要做什么,但出于安全原因不允许这样做。 (link - 在页面底部有人链接到 this 博客,其中声明这是不允许的。)

我知道实现这样的东西可能会有安全问题,但这个项目的整体目标是让用户完全(远程)控制 Android 系统。显然,有必要明确要求用户授权此控件。这种控件已经可用,他们称之为 Device Administration .这允许应用程序控制系统的非常私密的部分,并且正确地需要明确授权才能这样做。这个远程控制系统也不异常(exception)。

就我而言,它将用于帮助我 body 残疾的姐姐。您可以使用它来创建飞行控制系统或其他类似游戏 handle 的 Controller 。实现这种接口(interface)有很多原因。

最后,谷歌正在不断更新 Android,上面的博客条目说这是不可能的,已经有两年多了。从那以后发生了很多变化......

有人知道怎么做吗?如果还不能完成,您是否知道如何正式请求将新功能添加到 Android 系统,以便在以后的版本中允许它?

最佳答案

设备管理也可以远程完成,正如您所说,它可以访问系统级别,不幸的是,它只提供对少数系统级别功能的访问,例如删除设备、锁定和其他来自应用程序的密码设置。但是远程控制,不,我不认为设备管理有帮助。

我会考虑使用控制设备的 USB 配件。看看这个

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en553673

下面的链接(软件支持)对入门非常有帮助

http://ww1.microchip.com/downloads/en/DeviceDoc/Android%20Library%20Help.pdf

他们还有一个配件开发套件。

关于android - Android 设备的远程控制 - 模拟任何已安装应用程序的物理击键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4744135/

相关文章:

javascript - WebBluetooth 在 Windows 但不是 OSX 上的写入特性失败

android - 我应该在哪里存储动画值?

java - 在 Play 商店发布后 map 无法加载

python - 使用 Python 3 通过蓝牙发送消息

android - 如何将代码从 QSerialPort 迁移到 QBluetoothSocket

Android BLE - 确定特征的存储值类型

android - Material 按钮背景渐变

java - android 谷歌地图标记问题

android - Nodejs 是否可以通过 Web 应用程序读取已连接设备的系统日志?

ios - 带有 swift 的 iOS 基本 BLE 通信应用程序