[Android.Runtime.Register("android/view/accessibility/AccessibilityEvent", DoNotGenerateAcw=true)]
public sealed class AccessibilityEvent : Android.Views.Accessibility.AccessibilityRecord, Android.OS.IParcelable, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("android/view/accessibility/AccessibilityEvent", DoNotGenerateAcw=true)>]
type AccessibilityEvent = class
    inherit AccessibilityRecord
    interface IParcelable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Object
AccessibilityEvent

此类表示在用户界面中发生显著情况时由系统发送的辅助功能事件。 例如,单击 a android.widget.Button 时, android.view.View 将焦点等。

辅助功能事件由单个视图触发,该视图使用其状态的数据填充事件,并从其父级向相关方发送事件的请求。 根据对用户界面上下文的更广泛了解,父级可以选择修改甚至阻止事件。

辅助功能事件的主要用途是将 UI 中的更改传达给一个 android.accessibilityservice.AccessibilityService 。 如果需要,该服务可以通过检查事件的 #getSource() source 视图层次结构来检查用户界面,如视图状态树 AccessibilityNodeInfo (视图状态快照)表示,可用于浏览窗口内容。 请注意,必须显式请求访问事件的源的权限,因此必须显式请求窗口内容。 有关更多详细信息, android.accessibilityservice.AccessibilityService 请参阅 。 如果辅助功能服务尚未请求检索窗口内容,事件将不包含对其源的引用。 <strong Note: </strong>> for events of the #TYPE_NOTIFICATION_STATE_CHANGED source is never available, and Views that set android.view.View#isAccessibilityDataSensitive() may not populate all event properties on events sent from up from the view hierarchy.

此类表示各种语义上不同的辅助功能事件类型。 每个事件类型都有一组关联的相关属性。 换句话说,每个事件类型都通过此类公开的属性子集进行特征化。 对于每个事件类型,此类中定义了相应的常量。 遵循事件类型及其关联属性的规范:

<div class=“special reference”><h3>Developer Guides</h3>

有关创建和处理 AccessibilityEvents 的详细信息,请阅读 辅助功能 开发人员指南。

</div>

<b>VIEW TYPES</b></br>

<b>查看已单击</b> - 表示单击 android.view.View 类似 android.widget.Button android.widget.CompoundButton 事件。</br>em Type:</em> #TYPE_VIEW_CLICKED </br><em>Properties:</em></br><ul><li> #getEventType() - 事件的类型。<></li> #getSource() <> - 源信息(适用于已注册客户端)。</li> #getClassName() <> - 源的类名。</li> #getPackageName() <> - 源的包名称。</li> #getEventTime() <> - 事件时间。</li></ul>

<b>查看长时间单击</b> - 表示长时间单击 android.view.View 类似 android.widget.Button 事件的事件, android.widget.CompoundButton 等等 </br<>em>Type:</em/br><em>Properties:</em #TYPE_VIEW_LONG_CLICKED <>></br<>ul<>li> #getEventType() - 事件的类型。</li> #getSource() <> - 源信息(适用于已注册客户端)。</li> #getClassName() <> - 源的类名。</li> #getPackageName() <> - 源的包名称。</li> #getEventTime() <> - 事件时间。</li></ul>

<b>视图选定</b> - 表示通常在上下文 android.widget.AdapterView 中选择项的事件。</br>em Type:</em> #TYPE_VIEW_SELECTED </br><em>Properties:</em></br><ul><li> #getEventType() - 事件的类型。<></li> #getSource() <> - 源信息(适用于已注册客户端)。</li> #getClassName() <> - 源的类名。</li> #getPackageName() <> - 源的包名称。</li> #getEventTime() <> - 事件时间。</li></ul>

<b>View focused</b> - 表示聚焦 a android.view.View 的事件。</br>em Type:</em> #TYPE_VIEW_FOCUSED </br><em>Properties:</em></br><ul><li> #getEventType() - 事件的类型。<></li> #getSource() <> - 源信息(适用于已注册客户端)。</li> #getClassName() <> - 源的类名。</li> #getPackageName() <> - 源的包名称。</li> #getEventTime() <> - 事件时间。</li></ul>

<b>查看已更改<的文本/b> - 表示更改文本 android.widget.EditText 的事件。</br>em Type:</em> #TYPE_VIEW_TEXT_CHANGED </br><em>Properties:</em></br><ul><li> #getEventType() - 事件的类型。<></li> #getSource() <> - 源信息(适用于已注册客户端)。</li> #getClassName() <> - 源的类名。</li> #getPackageName() <> - 源的包名称。</li> #getEventTime() <> - 事件时间。</li> #getText() <> - 源的新文本。</li> #getBeforeText() <> - 更改前源的文本。</li> #getFromIndex() <> - 文本更改开始索引。</li> #getAddedCount() <> - 添加的字符数。</li> #getRemovedCount() <> - 已删除字符数。</li></ul>

<b>查看已更改<的文本选择/b> - 表示更改文本选择的事件 android.widget.EditText 。</br>em Type:</em> #TYPE_VIEW_TEXT_SELECTION_CHANGED </br><em>Properties:</em></br><ul><li> #getEventType() - 事件的类型。<></li> #getSource() <> - 源信息(适用于已注册客户端)。</li> #getClassName() <> - 源的类名。</li> #getPackageName() <> - 源的包名称。</li> #getEventTime() <> - 事件时间。</li></ul>

<b>查看在移动粒度<处遍历的文本/b> - 表示在给定粒度下遍历视图文本的事件。 例如,移动到下一个单词。</br>em Type:</em> #TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY </br><em>Properties:</em></br><ul><li> #getEventType() - 事件的类型。<></li> #getSource() <> - 源信息(适用于已注册客户端)。</li> #getClassName() <> - 源的类名。</li> #getPackageName() <> - 源的包名称。</li> #getEventTime() <> - 事件时间。</li> #getMovementGranularity() <> - 设置遍历视图文本的粒度。</li> #getText() <> - 源子树的文本。</li><> #getFromIndex() - 此移动中跳过的文本的开始。 这是向前移动文本时的起点,但在后移时不是。</li -><> #getToIndex() 此移动中跳过的文本的结尾。 在文本中向前移动时,这是结束点,但在向后移动时不是。</li> #getAction() <> - 获取指定方向的遍历操作。</li></ul></p>

<b>视图滚动</b> - 表示滚动视图的事件。 </br>em Type:</em> #TYPE_VIEW_SCROLLED </br><em>Properties:</em></br><ul><li> #getEventType() - 事件的类型。<></li> #getSource() <> - 源信息(适用于已注册客户端)。</li> #getClassName() <> - 源的类名。</li> #getPackageName() <> - 源的包名称。</li> #getEventTime() <> - 事件时间。</li> #getScrollDeltaX() <> - 水平位置的差异。</li><-> #getScrollDeltaY() 垂直位置的差异。</li></ul>

<b>转换类型</b></br>

<b>窗口状态已更改</b> - 表示对用户界面部分的更改事件,该部分在视觉上是不同的。 应从窗口的根视图或标记为窗格 android.view.View#setAccessibilityPaneTitle(CharSequence) 的视图发送。 请注意,对 true 窗口的更改由 #TYPE_WINDOWS_CHANGED .</br>em Type:</em> #TYPE_WINDOW_STATE_CHANGED </br><em>Properties:</em></br><ul><li> #getEventType() - 事件的类型。<></li><-> #getContentChangeTypes() 状态类型更改。</li> #getSource() <> - 源信息(适用于已注册客户端)。</li> #getClassName() <> - 源的类名。</li> #getPackageName() <> - 源的包名称。</li> #getEventTime() <> - 事件时间。</li> #getText() <> - 源子树的文本,包括窗格标题。</li></ul>

<b>窗口内容已更改</b> - 表示窗口内容中的更改事件。 此更改可以是添加/删除视图、更改视图大小等。</br>

<em>Type:</em>< #TYPE_WINDOW_CONTENT_CHANGED /br><em>Properties:</em></br><ul><li> #getEventType() - 事件的类型。</li> #getContentChangeTypes() <> - 内容类型更改。</li> #getSource() <> - 源信息(适用于已注册客户端)。</li> #getClassName() <> - 源的类名。</li> #getPackageName() <> - 源的包名称。</li> #getEventTime() <> - 事件时间。</li></ul>

<b>Windows 已更改</b> - 表示屏幕上显示的窗口的更改,例如窗口出现、窗口消失、窗口大小已更改、窗口层已更改等。这些事件只应来自负责管理窗口的系统。 窗口列表可从 android.accessibilityservice.AccessibilityService#getWindows() 中获取。 对于显示为窗口但由应用进程控制的用户界面区域,请使用 #TYPE_WINDOW_STATE_CHANGED 。</br>em Type:</em> #TYPE_WINDOWS_CHANGED </br><em>Properties:</em></br><ul><li> #getEventType() - 事件的类型。<></li> #getEventTime() <> - 事件时间。</li>< #getWindowChanges() <>/li> - 对源窗口 </ul><em>Note:</em> 的特定更改,可以通过查看 ID android.accessibilityservice.AccessibilityService#getWindows() 匹配 #getWindowId() 的窗口返回的列表来检索 AccessibilityWindowInfo 事件的窗口源。

<b>NOTIFICATION TYPES</b></br>

<b>通知状态已更改</b> - 表示向用户显示暂时性信息的事件。 此信息可以是或 android.app.Notification android.widget.Toast 。</br>em Type:</em> #TYPE_NOTIFICATION_STATE_CHANGED </br><em>Properties:</em></br><ul><li> #getEventType() - 事件的类型。<></li> #getClassName() <> - 源的类名。</li> #getPackageName() <> - 源的包名称。</li> #getEventTime() <> - 事件时间。</li>< #getParcelableData() > - 已发布 android.app.Notification ,如果适用。</li><> #getText() - 显示的文本 android.widget.Toast (如果适用)或可能包含来自 android.app.Notification 其中的文本,不过 #getParcelableData() 是一组更丰富的数据。< android.app.Notification /li></ul>

<b>探索类型</b></br>

<b>视图悬停 Enter</b> - 表示开始将鼠标悬停在 a android.view.View 上的事件。 悬停可以通过触摸或指向设备浏览屏幕来生成。</br>em Type:</em> #TYPE_VIEW_HOVER_ENTER </br><em>Properties:</em></br><ul><li> #getEventType() - 事件的类型。<></li> #getSource() <> - 源信息(适用于已注册客户端)。</li> #getClassName() <> - 源的类名。</li> #getPackageName() <> - 源的包名称。</li> #getEventTime() <> - 事件时间。</li></ul>

<b>视图悬停退出</b> - 表示停止将鼠标悬停在 a android.view.View 上的事件。 悬停可以通过触摸或指向设备浏览屏幕来生成。</br>em Type:</em> #TYPE_VIEW_HOVER_EXIT </br><em>Properties:</em></br><ul><li> #getEventType() - 事件的类型。<></li> #getSource() <> - 源信息(适用于已注册客户端)。</li> #getClassName() <> - 源的类名。</li> #getPackageName() <> - 源的包名称。</li> #getEventTime() <> - 事件时间。</li></ul></p>

<b>视图滚动到</b> - 表示通过ACTION_SCROLL_IN_DIRECTION在屏幕上引入的目标节点的事件。 <em>Type:</em>< #TYPE_VIEW_TARGETED_BY_SCROLL /br><em>Properties:</em></br><ul><li> #getEventType() - 事件的类型。</li><> #getSource() - 源信息(适用于已注册客户端)。 这表示由于滚动而在屏幕上引入的节点。</li> #getClassName() <> - 源的类名。</li> #getPackageName() <> - 源的包名称。</li> #getEventTime() <> - 事件时间。</li></ul>

<b>触摸交互开始</b> - 表示启动触摸交互的事件,即用户开始触摸屏幕。</br>em Type:</em> #TYPE_TOUCH_INTERACTION_START </br><em>Properties:</em></br><ul><li> #getEventType() - 事件的类型。<></li></ul><em>注意:</em> 此事件仅由系统触发,不会传递给要填充的视图树。</br>

<b>触摸交互结束</b> - 表示结束触摸交互的事件,即用户停止触摸屏幕。</br>em Type:</em> #TYPE_TOUCH_INTERACTION_END </br><em>Properties:</em></br><ul><li> #getEventType() - 事件的类型。<></li></ul><em>注意:</em> 此事件仅由系统触发,不会传递给要填充的视图树。</br>

<b>触摸探索手势开始</b> - 表示启动触摸探索手势的事件。</br>em Type:</em> #TYPE_TOUCH_EXPLORATION_GESTURE_START </br><em>Properties:</em></br><ul><li> #getEventType() - 事件的类型。<></li></ul><em>注意:</em> 此事件仅由系统触发,不会传递给要填充的视图树。</br>

<b>触摸浏览手势结束</b> - 表示结束触摸探索手势的事件。</br>em Type:</em> #TYPE_TOUCH_EXPLORATION_GESTURE_END </br><em>Properties:</em></br><ul><li> #getEventType() - 事件的类型。<></li></ul><em>注意:</em> 此事件仅由系统触发,不会传递给要填充的视图树。</br>

<b>触摸手势检测开始</b> - 表示启动用户手势检测的事件。</br>em Type:</em> #TYPE_GESTURE_DETECTION_START </br><em>Properties:</em></br><ul><li> #getEventType() - 事件的类型。<></li></ul><em>注意:</em> 此事件仅由系统触发,不会传递给要填充的视图树。</br>

<b>触摸手势检测结束</b> - 表示结束用户手势检测的事件。</br>em Type:</em> #TYPE_GESTURE_DETECTION_END </br><em>Properties:</em></br><ul><li> #getEventType() - 事件的类型。<></li></ul><em>注意:</em> 此事件仅由系统触发,不会传递给要填充的视图树。</br>

<b>杂项类型</b></br>

<b>公告</b> - 表示请求屏幕阅读器发出公告的应用程序的事件。 由于事件没有语义意义,因此仅在需要其他屏幕阅读器输出但其他类型的辅助功能服务不需要注意更改的异常情况下,此事件才适用。</br>em Type:</em> #TYPE_ANNOUNCEMENT </br><em>Properties:</em></br><ul><li> #getEventType() - 事件的类型。<></li> #getSource() <> - 源信息(适用于已注册客户端)。</li> #getClassName() <> - 源的类名。</li> #getPackageName() <> - 源的包名称。</li> #getEventTime() <> - 事件时间。</li> #getText() <> - 公告的文本。</li></ul>

<b>speechStateChanged</b><em>Type:</em> #TYPE_SPEECH_STATE_CHANGE </br> 表示语音状态更改类型的位掩码定义的语音状态的变化。 当应用程序希望发出语音或侦听人类语音的信号时,将发生语音状态的变化。 此事件有助于避免两个应用程序希望在另一个应用程序说话或另一个说话时侦听的冲突。 发送此事件时,发送方应确保随附的状态更改类型有意义。 例如,发送方不应一起发送和 #SPEECH_STATE_SPEAKING_END 一起发送 #SPEECH_STATE_SPEAKING_START 。 <em>Properties:</em></br><ul><li> #getSpeechStateChangeTypes() - 状态更改<类型/li li>>< #getPackageName() - 源的包名称。</li> #getEventTime() <> - 事件时间。</li></ul>

适用于 . 的 android.view.accessibility.AccessibilityEvent Java 文档

本页的某些部分是根据 Android 开放源代码项目 创建和共享 的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述 的术语使用。

是否只应将事件传送到 android.accessibilityservice.AccessibilityService 属性设置为 true 的属性 android.accessibilityservice.AccessibilityServiceInfo#isAccessibilityTool 。 - 或 - 设置是否只应将事件传送到 android.accessibilityservice.AccessibilityService 属性设置为 true 的属性 android.accessibilityservice.AccessibilityServiceInfo#isAccessibilityTool