如何在Android上以编程方式发出点击事件

问题描述 投票:10回答:4

快速版本:

[How在给定的坐标下,无论设备状态如何,我都可以触发与屏幕触摸有关的事件吗?

加长版:我的问题:

我有无法触摸设备的用户(由于[C​​0]或cerebral palsy,他们的身体无法移动)。然后,我正在创建一种设备,以监视其他类型的输入(例如,肌肉的收缩,甚至是喉咙的嗡嗡声)。

重要的是我有一个发出单个命令的电路。

然后这些命令必须被Android设备拦截,并执行其关联命令,就像用户在正常操作该设备一样。

注意以下几点:我将没有任何活动在运行。该应用程序的目的是将传感器与设备连接,因此,我无法使用View元素。

我想执行的就是为Android创建一个strokes元素。

但是我没有办法在自己的内部执行应用程序(我将为用户提供一个自动移动的“目标”,以使用户发出命令/单击)或执行mouse-like的方法。或MotionEvent

虽然到目前为止我的研究没有得到任何回应,但我想问以下问题:我是否忘记了系统中允许我执行任务的任何部分或指令?

最终结果是一个服务,该服务仅在等待信号,它被接收器捕获...这就是我所困的地方。

android service
4个回答
3
投票

由于安全原因,将您的应用程序中的事件注入到其他任何应用程序中将非常困难。

但是,在本地C / C ++中,您可能会有更好的运气。因此,希望您的传感器包装器最终将成为.SO库,可以包含在其他项目中...

因为您尝试做的事情听起来像Espresso可以做的(这是一个JUnit测试套件,可以将Motion / Touch / KeyEvents注入视图中]

但是,您可以使用一些附加的可访问性应用程序来编译自己的图像,这些应用程序可能会带您到达那里。但是您的想法实际上将不适用于几乎所有现成的android设备。


0
投票

我将在此处输入答案,以显示可能有类似问题的人的替代方法。

[从一开始,该设备是一个独立的对象,它将GET请求发送到Android设备中的内部网络服务器(我今天使用的是KeyEvent,2015年10月26日),我可以发出一些请求简单命令。

同样,我打算使用PAW server到一个Activity,并且光标不断移动,并且在接收到信号后,它将使用其下可聚焦对象的onTouchEvent(仍在研究。)>

我确实从我想做的事情中了解安全性“缺陷”,但是由于用户的需要,即使是USB HID(通用串行总线-人机接口设备)也无法按照我目前的计划进行。


0
投票

嗯,您可以在测试时插入事件,因为Robolectric,espresso和所有其他运行模拟。在真实设备中执行此操作的最佳方法是将应用内的应用沙盒化。这样,您的应用将充当其他应用的操作系统。但这将是昂贵的,并且性能会不好。


0
投票

您是否研究过Android开发人员的辅助功能? WebView

© www.soinside.com 2019 - 2024. All rights reserved.