如何在没有 root 的情况下可靠地模拟 Android 上的触摸事件(如 Automate 和 Tasker)?
2022-09-03 00:58:49
如何从作为后台服务运行的应用外部的 Java 可靠地模拟 Android 上的触摸事件(无需生根)?
虽然以前有人问过这个问题,但大多数答案都利用了亚行。(如如何在安卓设备上模拟触摸事件?)
https://github.com/chetbox/android-mouse-cursor 使用辅助功能提供了一个很好的解决方案,但不是很可靠,因为并非所有视图都响应它,并且游戏在大多数时候根本没有响应。
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();
}
这是 https://github.com/chetbox/android-mouse-cursor 使用的当前代码。
安卓版本是8.0,股票安卓
有没有更好、更可靠的方法来模拟 Java 中的这些触摸事件?提前致谢!