如何在运行后台服务的应用程序外部从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)
Android版本是8.0,库存Android
有没有更好,更可靠的方法来模拟Java中的这些触摸事件?提前致谢!