我不知道把它放在哪里,但如果有人在使用这里首先发布的方法让“sendevent”代码在 ICS 上工作时遇到问题,我已经想出了如何去做。不过,它确实需要 SU 访问权限。至少对我来说问题是这样的。
我将在下面发布代码,然后解释每个部分。
当您执行“getevent”以获取触摸板上的触摸事件的十六进制代码(我的是 /dev/event1)时,它会吐出一堆数据,从十六进制转换为十进制后将如下所示。
第一组是 7 行,接下来是 9 行,用于单次触摸事件。为什么?没有线索。语法是 this (device) (1, 3, or 0, not understand) (value, 这可能意味着很多东西。在我的例子中,58 是我设备的标识符,53 和 54 表示坐标是值) (value , ETC)
sendevent /dev/input/event1 3 58 255 #means '3, variable 58 is 255'
sendevent /dev/input/event1 3 53 534 #'3, variable 53 (x axis) is 534
sendevent /dev/input/event1 3 54 321 #'3, variable 54 (y axis) is 534
sendevent /dev/input/event1 3 48 8 #'3, variable 48 (pressure maybe) is 8
sendevent /dev/input/event1 0 2 0 #i think the 0,2,0 means 'finger down or up
sendevent /dev/input/event1 1 330 1 #this, followed by 0,0,0 means 'end of event'
sendevent /dev/input/event1 0 0 0
与所有这些相同,接受这是事件的另一端,如果第一部分的意思是#'he put his finger down' 这意味着'他捡起它。
sendevent /dev/input/event1 3 58 0
sendevent /dev/input/event1 3 53 534
sendevent /dev/input/event1 3 54 321
sendevent /dev/input/event1 3 48 8
sendevent /dev/input/event1 0 2 0
sendevent /dev/input/event1 0 0 0
sendevent /dev/input/event1 1 330 0
sendevent /dev/input/event1 0 2 0
sendevent /dev/input/event1 0 0 0
乍一看,这似乎是两个不同的触摸事件,这是我出错的地方。这实际上是一种“呼叫和应答类型的情况”。此代码将产生一个单一的触摸事件。顺便说一句,我使用 shell 脚本和 smanager 来获取它,而不必自己破译十六进制数据,它被称为“sendeventgetevent.sh”谷歌它。
我很高,这很难解释,但如果你是 root,下面的代码将在 4.0.4 ICS 中提供的坐标上产生一个单一的触摸事件。当然,您必须对其进行调整以使其正确。下载 sendeventgetevent.sh,使用像 smanager 这样的脚本管理器来运行它并继续运行。
$su
sendevent /dev/input/event1 3 58 255;
sendevent /dev/input/event1 3 53 534;
sendevent /dev/input/event1 3 54 321;
sendevent /dev/input/event1 3 48 8;
sendevent /dev/input/event1 0 2 0;
sendevent /dev/input/event1 1 330 1;
sendevent /dev/input/event1 0 0 0;
sendevent /dev/input/event1 3 58 0;
sendevent /dev/input/event1 3 53 534;
sendevent /dev/input/event1 3 54 321;
sendevent /dev/input/event1 3 48 8;
sendevent /dev/input/event1 0 2 0;
sendevent /dev/input/event1 0 0 0;
sendevent /dev/input/event1 1 330 0;
sendevent /dev/input/event1 0 2 0;
sendevent /dev/input/event1 0 0 0;