【发布时间】:2013-03-13 20:11:12
【问题描述】:
是否可以从 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 的安全保护而无法访问这样的低级信息?是否可以在“root”设备上使用?
我为什么要这样做: 我想在 Android 设备上记录用户的操作(触摸和手势事件)以进行可用性测试。无障碍服务似乎是要走的路,但信息不够详细。例如,对于滑动手势,我无法获取用户滑动位置的屏幕坐标。我在想,从触摸屏获取低级输入可能会让我获得更详细的信息。也许有更好的方法来做到这一点? (我是 Android 世界的新手。这种事情在 Windows 上很容易。)
【问题讨论】:
标签: android android-service android-permissions