List of usage examples for android.accessibilityservice AccessibilityService getRootInActiveWindow
public AccessibilityNodeInfo getRootInActiveWindow()
From source file:Main.java
public static void findViewIdAndClick(AccessibilityService accessibilityService, String id) { AccessibilityNodeInfo accessibilityNodeInfo = accessibilityService.getRootInActiveWindow(); if (accessibilityNodeInfo == null) { return;/*from www . j a va2s . c o m*/ } List<AccessibilityNodeInfo> nodeInfoList = accessibilityNodeInfo.findAccessibilityNodeInfosByViewId(id); if (nodeInfoList != null && !nodeInfoList.isEmpty()) { for (AccessibilityNodeInfo nodeInfo : nodeInfoList) { if (nodeInfo != null) { performClick(nodeInfo); break; } } } }
From source file:Main.java
public static void findTextAndClick(AccessibilityService accessibilityService, String text) { AccessibilityNodeInfo accessibilityNodeInfo = accessibilityService.getRootInActiveWindow(); if (accessibilityNodeInfo == null) { return;// ww w. j a v a 2 s .c o m } List<AccessibilityNodeInfo> nodeInfoList = accessibilityNodeInfo.findAccessibilityNodeInfosByText(text); if (nodeInfoList != null && !nodeInfoList.isEmpty()) { for (AccessibilityNodeInfo nodeInfo : nodeInfoList) { if (nodeInfo != null && (text.equals(nodeInfo.getText()) || text.equals(nodeInfo.getContentDescription()))) { performClick(nodeInfo); break; } } } }
From source file:com.android.utils.FocusFinder.java
public static AccessibilityNodeInfoCompat getFocusedNode(AccessibilityService service, boolean fallbackOnRoot) { AccessibilityNodeInfo root = service.getRootInActiveWindow(); AccessibilityNodeInfo focused = null; try {//from w w w . j a v a 2 s . c om AccessibilityNodeInfo ret = null; if (root != null) { focused = root.findFocus(AccessibilityNodeInfo.FOCUS_ACCESSIBILITY); if (focused != null && focused.isVisibleToUser()) { ret = focused; focused = null; } else if (fallbackOnRoot) { ret = root; root = null; } } else { LogUtils.log(service, Log.ERROR, "No current window root"); } if (ret != null) { return new AccessibilityNodeInfoCompat(ret); } } finally { if (root != null) { root.recycle(); } if (focused != null) { focused.recycle(); } } return null; }
From source file:com.android.utils.compat.accessibilityservice.AccessibilityServiceCompatUtils.java
/** * @return root node of the Application window */// ww w . ja v a 2 s.c om public static AccessibilityNodeInfoCompat getRootInActiveWindow(AccessibilityService service) { if (service == null) return null; AccessibilityNodeInfo root = service.getRootInActiveWindow(); if (root == null) return null; return new AccessibilityNodeInfoCompat(root); }
From source file:com.googlecode.eyesfree.brailleback.FocusFinder.java
public static AccessibilityNodeInfoCompat getFocusedNode(AccessibilityService service, boolean fallbackOnRoot) { AccessibilityNodeInfo root = service.getRootInActiveWindow(); AccessibilityNodeInfo focused = null; try {/*from ww w. j a v a2 s . co m*/ AccessibilityNodeInfo ret = null; if (root != null) { focused = root.findFocus(AccessibilityNodeInfo.FOCUS_ACCESSIBILITY); if (focused != null && focused.isVisibleToUser()) { ret = focused; focused = null; } else if (fallbackOnRoot) { ret = root; root = null; } } else { LogUtils.log(service, Log.ERROR, "No current window root"); } if (ret != null) { return new AccessibilityNodeInfoCompat(ret); } } finally { if (root != null) { root.recycle(); } if (focused != null) { focused.recycle(); } } return null; }
From source file:com.android.utils.compat.accessibilityservice.AccessibilityServiceCompatUtils.java
/** * @return root node of the window that currently has accessibility focus *//*from w w w . j av a 2 s.c o m*/ public static AccessibilityNodeInfoCompat getRootInAccessibilityFocusedWindow(AccessibilityService service) { if (service == null) { return null; } AccessibilityNodeInfo focusedRoot = null; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) { List<AccessibilityWindowInfo> windows = service.getWindows(); // Create window manager with fake value of isInRTL = false. This is okay here since // isInRTL will not change the result of getCurrentWindow. WindowManager manager = new WindowManager(false /* isInRTL */); manager.setWindows(windows); AccessibilityWindowInfo accessibilityFocusedWindow = manager .getCurrentWindow(false /* useInputFocus */); if (accessibilityFocusedWindow != null) { focusedRoot = accessibilityFocusedWindow.getRoot(); } } if (focusedRoot == null) { focusedRoot = service.getRootInActiveWindow(); } if (focusedRoot == null) { return null; } return new AccessibilityNodeInfoCompat(focusedRoot); }