Example usage for android.accessibilityservice AccessibilityService getWindows

List of usage examples for android.accessibilityservice AccessibilityService getWindows

Introduction

In this page you can find the example usage for android.accessibilityservice AccessibilityService getWindows.

Prototype

public List<AccessibilityWindowInfo> getWindows() 

Source Link

Document

Gets the windows on the screen.

Usage

From source file:com.android.utils.compat.accessibilityservice.AccessibilityServiceCompatUtils.java

/**
 * @return root node of the window that currently has accessibility focus
 *///  w  w  w.j  av a2 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);
}