AccessibilityWindowInfo

public final class AccessibilityWindowInfo
extends Object implements Parcelable

java.lang.Object
   ↳ android.view.accessibility.AccessibilityWindowInfo


This class represents a state snapshot of a window for accessibility purposes. The screen content contains one or more windows where some windows can be descendants of other windows, which is the windows are hierarchically ordered. Note that there is no root window. Hence, the screen content can be seen as a collection of window trees.

Summary

Constants

int TYPE_ACCESSIBILITY_OVERLAY

Window type: Windows that are overlaid only by an AccessibilityService for interception of user interactions without changing the windows an accessibility service can introspect.

int TYPE_APPLICATION

Window type: This is an application window.

int TYPE_INPUT_METHOD

Window type: This is an input method window.

int TYPE_MAGNIFICATION_OVERLAY

Window type: A system window used to show the UI for the interaction with window-based magnification, which includes the magnified content and the option menu.

int TYPE_SPLIT_SCREEN_DIVIDER

Window type: A system window used to divide the screen in split-screen mode.

int TYPE_SYSTEM

Window type: This is a system window.

Inherited constants

Fields

public static final Creator<AccessibilityWindowInfo> CREATOR

Public constructors

AccessibilityWindowInfo()

Creates a new AccessibilityWindowInfo.

AccessibilityWindowInfo(AccessibilityWindowInfo info)

Copy constructor.

Public methods

int describeContents()

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.

boolean equals(Object obj)

Indicates whether some other object is "equal to" this one.

AccessibilityNodeInfo getAnchor()

Gets the node that anchors this window to another.

void getBoundsInScreen(Rect outBounds)

Gets the bounds of this window in the screen.

AccessibilityWindowInfo getChild(int index)

Gets the child window at a given index.

int getChildCount()

Gets the number of child windows.

int getDisplayId()

Returns the ID of the display this window is on, for use with DisplayManager.getDisplay(int).

int getId()

Gets the unique window id.

int getLayer()

Gets the layer which determines the Z-order of the window.

LocaleList getLocales()

Return the LocaleList of the window.

AccessibilityWindowInfo getParent()

Gets the parent window.

void getRegionInScreen(Region outRegion)

Gets the touchable region of this window in the screen.

AccessibilityNodeInfo getRoot(int prefetchingStrategy)

Gets the root node in the window's hierarchy.

AccessibilityNodeInfo getRoot()

Gets the root node in the window's hierarchy.

CharSequence getTitle()

Gets the title of the window.

long getTransitionTimeMillis()

Return the SystemClock#uptimeMillis() at which the last transition happens.

int getType()

Gets the type of the window.

int hashCode()

Returns a hash code value for the object.

boolean isAccessibilityFocused()

Gets if this window has accessibility focus.

boolean isActive()

Gets if this window is active.

boolean isFocused()

Gets if this window has input focus.

boolean isInPictureInPictureMode()

Check if the window is in picture-in-picture mode.

static AccessibilityWindowInfo obtain()

Returns a cached instance if such is available or a new one is created.

static AccessibilityWindowInfo obtain(AccessibilityWindowInfo info)

Returns a cached instance if such is available or a new one is created.

void recycle()

Return an instance back to be reused.

String toString()

Returns a string representation of the object.

void writeToParcel(Parcel parcel, int flags)

Flatten this object in to a Parcel.

Inherited methods

Constants

TYPE_ACCESSIBILITY_OVERLAY

Added in API level 22
public static final int TYPE_ACCESSIBILITY_OVERLAY

Window type: Windows that are overlaid only by an AccessibilityService for interception of user interactions without changing the windows an accessibility service can introspect. In particular, an accessibility service can introspect only windows that a sighted user can interact with which they can touch these windows or can type into these windows. For example, if there is a full screen accessibility overlay that is touchable, the windows below it will be introspectable by an accessibility service regardless they are covered by a touchable window.

Constant Value: 4 (0x00000004)

TYPE_APPLICATION

Added in API level 21
public static final int TYPE_APPLICATION

Window type: This is an application window. Such a window shows UI for interacting with an application.

Constant Value: 1 (0x00000001)

TYPE_INPUT_METHOD

Added in API level 21
public static final int TYPE_INPUT_METHOD

Window type: This is an input method window. Such a window shows UI for inputting text such as keyboard, suggestions, etc.

Constant Value: 2 (0x00000002)

TYPE_MAGNIFICATION_OVERLAY

Added in API level 33
public static final int TYPE_MAGNIFICATION_OVERLAY

Window type: A system window used to show the UI for the interaction with window-based magnification, which includes the magnified content and the option menu.

Constant Value: 6 (0x00000006)

TYPE_SPLIT_SCREEN_DIVIDER

Added in API level 24
public static final int TYPE_SPLIT_SCREEN_DIVIDER

Window type: A system window used to divide the screen in split-screen mode. This type of window is present only in split-screen mode.

Constant Value: 5 (0x00000005)

TYPE_SYSTEM

Added in API level 21
public static final int TYPE_SYSTEM

Window type: This is a system window. Such a window shows UI for interacting with the system.

Constant Value: 3 (0x00000003)

Fields

CREATOR

Added in API level 21
public static final Creator<AccessibilityWindowInfo> CREATOR

Public constructors

AccessibilityWindowInfo

Added in API level 21
public AccessibilityWindowInfo ()

Creates a new AccessibilityWindowInfo.

AccessibilityWindowInfo

Added in API level 21
public AccessibilityWindowInfo (AccessibilityWindowInfo info)

Copy constructor. Creates a new AccessibilityWindowInfo, and this new instance is initialized from given info.

Parameters
info AccessibilityWindowInfo: The other info. This value cannot be null.

Public methods

describeContents

Added in API level 21
public int describeContents ()

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. For example, if the object will include a file descriptor in the output of writeToParcel(android.os.Parcel, int), the return value of this method must include the CONTENTS_FILE_DESCRIPTOR bit.

Returns
int a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either 0 or CONTENTS_FILE_DESCRIPTOR

equals

Added in API level 21
public boolean equals (Object obj)

Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation on non-null object references:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.

An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.

Parameters
obj Object: This value may be null.

Returns
boolean true if this object is the same as the obj argument; false otherwise.

getAnchor

Added in API level 24
public AccessibilityNodeInfo getAnchor ()

Gets the node that anchors this window to another.

Returns
AccessibilityNodeInfo The anchor node, or null if none exists.

getBoundsInScreen

Added in API level 21
public void getBoundsInScreen (Rect outBounds)

Gets the bounds of this window in the screen. This is equivalent to get the bounds of the Region from getRegionInScreen(android.graphics.Region).

Parameters
outBounds Rect: The out window bounds.

getChild

Added in API level 21
public AccessibilityWindowInfo getChild (int index)

Gets the child window at a given index.

Parameters
index int: The index.

Returns
AccessibilityWindowInfo The child.

getChildCount

Added in API level 21
public int getChildCount ()

Gets the number of child windows.

Returns
int The child count.

getDisplayId

Added in API level 30
public int getDisplayId ()

Returns the ID of the display this window is on, for use with DisplayManager.getDisplay(int).

Returns
int The logical display id.

getId

Added in API level 21
public int getId ()

Gets the unique window id.

Returns
int windowId The window id.

getLayer

Added in API level 21
public int getLayer ()

Gets the layer which determines the Z-order of the window. Windows with greater layer appear on top of windows with lesser layer.

Returns
int The window layer.

getLocales

Added in API level 34
public LocaleList getLocales ()

Return the LocaleList of the window.

Returns
LocaleList the locales of the window. This value cannot be null.

getParent

Added in API level 21
public AccessibilityWindowInfo getParent ()

Gets the parent window.

Returns
AccessibilityWindowInfo The parent window, or null if none exists.

getRegionInScreen

Added in API level 30
public void getRegionInScreen (Region outRegion)

Gets the touchable region of this window in the screen.

Parameters
outRegion Region: The out window region. This value cannot be null.

getRoot

Added in API level 33
public AccessibilityNodeInfo getRoot (int prefetchingStrategy)

Gets the root node in the window's hierarchy.

Parameters
prefetchingStrategy int: the prefetching strategy. Value is either 0 or a combination of AccessibilityNodeInfo.FLAG_PREFETCH_ANCESTORS, AccessibilityNodeInfo.FLAG_PREFETCH_SIBLINGS, AccessibilityNodeInfo.FLAG_PREFETCH_DESCENDANTS_HYBRID, AccessibilityNodeInfo.FLAG_PREFETCH_DESCENDANTS_DEPTH_FIRST, AccessibilityNodeInfo.FLAG_PREFETCH_DESCENDANTS_BREADTH_FIRST, and AccessibilityNodeInfo.FLAG_PREFETCH_UNINTERRUPTIBLE

Returns
AccessibilityNodeInfo The root node. This value may be null.

getRoot

Added in API level 21
public AccessibilityNodeInfo getRoot ()

Gets the root node in the window's hierarchy.

Returns
AccessibilityNodeInfo The root node.

getTitle

Added in API level 24
public CharSequence getTitle ()

Gets the title of the window.

Returns
CharSequence The title of the window, or null if none is available.

getTransitionTimeMillis

Added in API level 34
public long getTransitionTimeMillis ()

Return the SystemClock#uptimeMillis() at which the last transition happens. A transition happens when getBoundsInScreen(android.graphics.Rect) is changed.
Value is a non-negative timestamp in the SystemClock.uptimeMillis() time base.

Returns
long The transition timestamp. Value is a non-negative timestamp in the SystemClock.uptimeMillis() time base.

getType

Added in API level 21
public int getType ()

Gets the type of the window.

Returns
int The type.

hashCode

Added in API level 21
public int hashCode ()

Returns a hash code value for the object. This method is supported for the benefit of hash tables such as those provided by HashMap.

The general contract of hashCode is:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
  • If two objects are equal according to the equals method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the equals method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.

Returns
int a hash code value for this object.

isAccessibilityFocused

Added in API level 21
public boolean isAccessibilityFocused ()

Gets if this window has accessibility focus.

Returns
boolean Whether has accessibility focus.

isActive

Added in API level 21
public boolean isActive ()

Gets if this window is active. An active window is the one the user is currently touching or the window has input focus and the user is not touching any window.

This is defined as the window that most recently fired one of the following events: AccessibilityEvent#TYPE_WINDOW_STATE_CHANGED, AccessibilityEvent#TYPE_VIEW_HOVER_ENTER, AccessibilityEvent#TYPE_VIEW_HOVER_EXIT. In other words, the last window shown that also has input focus.

Returns
boolean Whether this is the active window.

isFocused

Added in API level 21
public boolean isFocused ()

Gets if this window has input focus.

Returns
boolean Whether has input focus.

isInPictureInPictureMode

Added in API level 26
public boolean isInPictureInPictureMode ()

Check if the window is in picture-in-picture mode.

Returns
boolean true if the window is in picture-in-picture mode, false otherwise.

obtain

Added in API level 21
public static AccessibilityWindowInfo obtain ()

Returns a cached instance if such is available or a new one is created.

In most situations object pooling is not beneficial. Create a new instance using the constructor AccessibilityWindowInfo() instead.

Returns
AccessibilityWindowInfo An instance.

obtain

Added in API level 21
public static AccessibilityWindowInfo obtain (AccessibilityWindowInfo info)

Returns a cached instance if such is available or a new one is created. The returned instance is initialized from the given info.

In most situations object pooling is not beneficial. Create a new instance using the constructor AccessibilityWindowInfo(android.view.accessibility.AccessibilityWindowInfo) instead.

Parameters
info AccessibilityWindowInfo: The other info.

Returns
AccessibilityWindowInfo An instance.

recycle

Added in API level 21
public void recycle ()

Return an instance back to be reused.

Note: You must not touch the object after calling this function.

In most situations object pooling is not beneficial, and recycling is not necessary.

Throws
IllegalStateException If the info is already recycled.

toString

Added in API level 21
public String toString ()

Returns a string representation of the object.

Returns
String a string representation of the object.

writeToParcel

Added in API level 21
public void writeToParcel (Parcel parcel, 
                int flags)

Flatten this object in to a Parcel.

Parameters
parcel Parcel: The Parcel in which the object should be written. This value cannot be null.

flags int: Additional flags about how the object should be written. May be 0 or Parcelable.PARCELABLE_WRITE_RETURN_VALUE. Value is either 0 or a combination of Parcelable.PARCELABLE_WRITE_RETURN_VALUE, and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES