相关疑难解决方法(0)

如何在没有root的情况下可靠地模拟Android上的触摸事件(例如Automate和Tasker)?

如何在运行后台服务的应用程序外部从Java可靠地模拟Android上的触摸事件(无需生根)?

尽管以前已经问过这个问题,但是大多数答案都是使用ADB的。(例如如何在Android设备上模拟触摸事件?

https://github.com/chetbox/android-mouse-cursor使用Accessibility提供了一个很好的解决方案,但是它不是很可靠,因为不是所有视图都响应它,并且游戏在大多数时间都没有响应。

private void click() {
  AccessibilityNodeInfo nodeInfo = getRootInActiveWindow();
  if (nodeInfo == null) return;

  AccessibilityNodeInfo nearestNodeToMouse = findSmallestNodeAtPoint(nodeInfo, cursorLayout.x, cursorLayout.y + 50);

  if (nearestNodeToMouse != null) {
    logNodeHierachy(nearestNodeToMouse, 0);
    nearestNodeToMouse.performAction(AccessibilityNodeInfo.ACTION_CLICK);
  }

  nodeInfo.recycle();
}
Run Code Online (Sandbox Code Playgroud)

这是https://github.com/chetbox/android-mouse-cursor使用的当前代码。

Android版本是8.0,库存Android

有没有更好,更可靠的方法来模拟Java中的这些触摸事件?提前致谢!

java android accessibilityservice android-8.0-oreo

5
推荐指数
1
解决办法
4329
查看次数