拦截所有触摸数据(包括键盘)
Intercept all touch data (including keyboard)
我目前正在研究在 android 中检索触摸屏数据的方法。
在我继续之前,该应用程序将用于研究目的,并将利用所有感官输入进行实验。该应用不适用于 public 版本。用户将知道他们的所有输入都受到监控。
我基本上想监控 phone 屏幕上的所有触摸输入,包括键盘按下等。我已经能够获得一般触摸事件:
public override bool OnTouchEvent(MotionEvent e)
{
int x = (int)e.GetX();
int y = (int)e.GetY();
System.Diagnostics.Debug.WriteLine($"Touch detected at x:{x} y:{y}");
return base.OnTouchEvent(e);
}
但是在以下情况下不会调用此方法:
- 点击视图中的另一个项目(不是视图本身,即按钮)。
- 键盘出现
我希望能够获取 phone 屏幕上发生的任何触摸的触摸数据。我在下方附上了我有兴趣捕获的那种屏幕点击的屏幕截图。
默认键盘可以吗?我可能会使用 Xamarin Android 来实现这个项目(因为我对 xamarin 的体验比对 android 的体验要多得多)。我更愿意尽可能保持原汁原味。
谢谢
我已经能够 'bodge' 组合出一个完美满足我需求的解决方案。该解决方案并不完美,需要 android 设备连接到计算机并且需要一系列脚本 运行.
Android Touch Record Replay 提供了将设备触摸数据提取到 csv 文件所需的所有步骤。
要获取触摸事件数据,您必须执行以下操作:
- 运行 shell 脚本
./find_touchscreen_name.sh
如果可行请忽略下一步
- 运行命令
adb shell getevent -lp
(您可能需要将shell
替换为exec-out
- 通过 运行ning
adb shell getevent | grep event<your_index>
为包含 ABS_MT_TOUCH_MAJOR
标签的每个索引并监视输出来确定哪个设备是您的触摸屏。
- 获得触摸屏后,调用 python 脚本:
human_readable_data.py
,参数如下:
用法: python human_readable_data.py arg1 arg2
| Argument | Value | Example |
| -------- | ------------------- | ----------------------------------- |
| arg1 | touchscreen device | /dev/input/event7 |
| arg2 | csv output location | /Users/$user/Desktop/touch_info.csv |
- 记录您的触摸屏点击
- 关闭python脚本(ctrl + c)
- 打开输出csv
现在我们已经记录了我们的 android 触摸屏数据以供进一步分析。
此解决方案不需要 root 设备!
我目前正在研究在 android 中检索触摸屏数据的方法。
在我继续之前,该应用程序将用于研究目的,并将利用所有感官输入进行实验。该应用不适用于 public 版本。用户将知道他们的所有输入都受到监控。
我基本上想监控 phone 屏幕上的所有触摸输入,包括键盘按下等。我已经能够获得一般触摸事件:
public override bool OnTouchEvent(MotionEvent e)
{
int x = (int)e.GetX();
int y = (int)e.GetY();
System.Diagnostics.Debug.WriteLine($"Touch detected at x:{x} y:{y}");
return base.OnTouchEvent(e);
}
但是在以下情况下不会调用此方法:
- 点击视图中的另一个项目(不是视图本身,即按钮)。
- 键盘出现
我希望能够获取 phone 屏幕上发生的任何触摸的触摸数据。我在下方附上了我有兴趣捕获的那种屏幕点击的屏幕截图。
默认键盘可以吗?我可能会使用 Xamarin Android 来实现这个项目(因为我对 xamarin 的体验比对 android 的体验要多得多)。我更愿意尽可能保持原汁原味。
谢谢
我已经能够 'bodge' 组合出一个完美满足我需求的解决方案。该解决方案并不完美,需要 android 设备连接到计算机并且需要一系列脚本 运行.
Android Touch Record Replay 提供了将设备触摸数据提取到 csv 文件所需的所有步骤。
要获取触摸事件数据,您必须执行以下操作:
- 运行 shell 脚本
./find_touchscreen_name.sh
如果可行请忽略下一步 - 运行命令
adb shell getevent -lp
(您可能需要将shell
替换为exec-out
- 通过 运行ning
adb shell getevent | grep event<your_index>
为包含ABS_MT_TOUCH_MAJOR
标签的每个索引并监视输出来确定哪个设备是您的触摸屏。 - 获得触摸屏后,调用 python 脚本:
human_readable_data.py
,参数如下:
用法: python human_readable_data.py arg1 arg2
| Argument | Value | Example |
| -------- | ------------------- | ----------------------------------- |
| arg1 | touchscreen device | /dev/input/event7 |
| arg2 | csv output location | /Users/$user/Desktop/touch_info.csv |
- 记录您的触摸屏点击
- 关闭python脚本(ctrl + c)
- 打开输出csv
现在我们已经记录了我们的 android 触摸屏数据以供进一步分析。
此解决方案不需要 root 设备!