是否可以从 Android 服务运行 getevent 并获得类似于在开发机器上运行 adb 以从命令提示符调用 getevent 时看到的输出?当我尝试类似的事情时:
ProcessBuilder builder = new ProcessBuilder()
.command("getevent")
.redirectErrorStream(true)
.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(builder.getInputStream()));
...
我为每个设备获得的输出如下所示:
无法打开 /dev/input/event[n],权限被拒绝
由于Android的安全保护,是否无法访问这样的低级信息?有可能在“根”设备上吗?
为什么我要这样做:我想在 Android 设备上记录用户的操作(触摸和手势事件)以进行可用性测试。无障碍服务似乎是要走的路,但信息不够详细。例如,对于滑动手势,我无法获取用户滑动位置的屏幕坐标。我在想,从触摸屏获取低级输入可能会让我获得更详细的信息。也许有更好的方法来做到这一点?(我是Android世界的新手。这种事情在Windows上很容易。)