android AccessibilityService解析

来源:互联网 发布:mac照片是什么意思啊 编辑:程序博客网 时间:2024/06/06 22:57

申明本文部分内容为网络相关资料整理,并结合本人实际工作总结而成。请引用或者转载注明出处,对于文章内容有疑问请留言。

公共抽象类AccessibilityService

extends Service 

 java.lang.Object继承

   android.content.Context

 android.content.ContextWrapper

 android.app.Service

 android.accessibilityservice.AccessibilityService

辅助功能服务只能用于帮助残疾人使用Android设备和应用。它们在后台运行,并在触发AccessibilityEvent时由系统接收回调。这样的事件表示用户界面中的一些状态转换,例如,焦点已经改变,按钮被点击等等。这样的服务可以可选地请求查询活动窗口的内容的能力。开发无障碍服务需要扩展此类并实现其抽象方法。

开发者指南

有关创建辅助功能服务的更多信息,请阅读辅助功能开发人员指南。

生命周期

辅助服务的生命周期由系统专门管理,并遵循已建立的服务生命周期。启动辅助功能服务是由用户在设备设置中明确地打开服务而触发的。系统绑定到一个服务后,它调用onServiceConnected()。可以由想要执行后绑定设置的客户端覆盖此方法。当用户在设备设置中关闭辅助服务或者调用disableSelf()时,停用辅助服务。

声明

一个辅助功能被声明为AndroidManifest.xml中的任何其他服务,但它必须做两件事情:

指定它处理android.accessibilityservice.AccessibilityService”意图。

请求BIND_ACCESSIBILITY_SERVICE权限,以确保只有系统可以绑定到它。

如果这些项目中的任一项丢失,系统将忽略辅助功能服务。以下是一个示例声明:

 <service android:name=".MyAccessibilityService"         android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">     <intent-filter>         <action android:name="android.accessibilityservice.AccessibilityService" />     </intent-filter>     . . . </service>

组态

可以将辅助服务配置为接收特定类型的可访问性事件,仅侦听特定包,在给定时间范围内仅从每个类型获取事件一次,检索窗口内容,指定设置活动等。

 配置辅助服务有两种方法:

 在声明服务时,在清单中提供元数据条目。带有元数据标签的服务声明如下:

 <service android:name=".MyAccessibilityService">     <intent-filter>         <action android:name="android.accessibilityservice.AccessibilityService" />     </intent-filter>     <meta-data android:name="android.accessibilityservice" android:resource="@xml/accessibilityservice" /> </service>

注意:此方法可以设置所有属性。

有关详细信息,请参阅SERVICE_META_DATA<accessibility-service>

调用setServiceInfoAccessibilityServiceInfo)。请注意,此方法可以随时调用以动态更改服务配置。

注意:此方法仅可设置动态可配置的属性:eventTypesfeedbackTypeflagsnotificationTimeoutpackageNames

有关更多详细信息,请参阅AccessibilityServiceInfo

检索窗口内容

服务可以在其声明中指定它可以检索表示为AccessibilityWindowInfoAccessibilityNodeInfo对象的树的窗口内容。请注意,声明此功能要求该服务通过SERVICE_META_DATA引用的XML资源声明其配置。

可以使用AccessibilityEvent.getSource(),findFocusint),getWindows()或getRootInActiveWindow()检索窗口内容。

注意一个辅助功能服务可能已被请求通知事件类型的一个子集,因此在节点层次结构已更改时不知道。节点也可能包含过时的信息,因为窗口内容可能随时改变。

通知策略

所有无障碍服务都会被通知他们所要求的所有事件,而不考虑其反馈类型。

注意:事件通知超时对于避免将事件传播到客户端太频繁有用,因为这是通过昂贵的进程间调用完成的。人们可以将超时视为确定事件生成已经落定的标准。

事件类型

TYPE_VIEW_CLICKED

TYPE_VIEW_LONG_CLICKED

TYPE_VIEW_FOCUSED

TYPE_VIEW_SELECTED

TYPE_VIEW_TEXT_CHANGED

TYPE_WINDOW_STATE_CHANGED

TYPE_NOTIFICATION_STATE_CHANGED

TYPE_TOUCH_EXPLORATION_GESTURE_START

TYPE_TOUCH_EXPLORATION_GESTURE_END

TYPE_VIEW_HOVER_ENTER

TYPE_VIEW_HOVER_EXIT

TYPE_VIEW_SCROLLED

TYPE_VIEW_TEXT_SELECTION_CHANGED

TYPE_WINDOW_CONTENT_CHANGED

TYPE_ANNOUNCEMENT

TYPE_GESTURE_DETECTION_START

TYPE_GESTURE_DETECTION_END

TYPE_TOUCH_INTERACTION_START

TYPE_TOUCH_INTERACTION_END

TYPE_VIEW_ACCESSIBILITY_FOCUSED

TYPE_WINDOWS_CHANGED

TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED

反馈类型

FEEDBACK_AUDIBLE

FEEDBACK_HAPTIC

FEEDBACK_AUDIBLE

FEEDBACK_VISUAL

FEEDBACK_GENERIC

FEEDBACK_BRAILLE

也可以看看:

AccessibilityEvent

AccessibilityServiceInfo

AccessibilityManager

概要

嵌套类

AccessibilityService.GestureResultCallback

用于报告发送姿态的状态的类

AccessibilityService.MagnificationController

用于控制和查询显示放大的状态。

AccessibilityService.SoftKeyboardController

用于控制和查询软键盘显示模式。

常量

INT GESTURE_SWIPE_DOWN

用户已经在触摸屏上执行了向下滑动手势。

INT GESTURE_SWIPE_DOWN_AND_LEFT

用户已经在触摸屏上执行了向下和向左手势。

INT GESTURE_SWIPE_DOWN_AND_RIGHT

用户在触摸屏上执行了向下和向右的手势。

INT GESTURE_SWIPE_DOWN_AND_UP

用户已经在触摸屏上执行了向下和向上的向下手势。

INT GESTURE_SWIPE_LEFT

用户已经在触摸屏上执行了滑动左手势。

INT GESTURE_SWIPE_LEFT_AND_DOWN

用户已经在触摸屏上执行了左和右手势。

INT GESTURE_SWIPE_LEFT_AND_RIGHT

用户已经在触摸屏上执行了滑动左和右手势。

INT GESTURE_SWIPE_LEFT_AND_UP

用户已经在触摸屏上执行了左和右手势。

INT GESTURE_SWIPE_RIGHT

用户已经在触摸屏上执行了滑动右手势。

INT GESTURE_SWIPE_RIGHT_AND_DOWN

用户已经在触摸屏上执行了向下和向下的手势。

INT GESTURE_SWIPE_RIGHT_AND_LEFT

用户已经在触摸屏上执行了向左和向左滑动的手势。

INT GESTURE_SWIPE_RIGHT_AND_UP

用户已经在触摸屏上执行了向上和向上的手势。

INT GESTURE_SWIPE_UP

用户已经在触摸屏上执行了向上滑动手势。

INT GESTURE_SWIPE_UP_AND_DOWN

用户已经在触摸屏上执行了向上和向下的滑动手势。

INT GESTURE_SWIPE_UP_AND_LEFT

用户已经在触摸屏上执行了向上和向左的手势。

INT GESTURE_SWIPE_UP_AND_RIGHT

用户已经在触摸屏上执行了向上和向右的手势。

INT GLOBAL_ACTION_BACK

行动回去

INT GLOBAL_ACTION_HOME

行动回家

INT GLOBAL_ACTION_NOTIFICATIONS

打开通知的动作。

INT GLOBAL_ACTION_POWER_DIALOG

动作打开电源长按对话框。

INT GLOBAL_ACTION_QUICK_SETTINGS

打开快速设置的动作。

INT GLOBAL_ACTION_RECENTS

切换显示最近应用的概述的操作。

INT GLOBAL_ACTION_TOGGLE_SPLIT_SCREEN

切换对接当前应用程序窗口的操作

字符串SERVICE_INTERFACE

必须声明为服务处理的意图。

字符串SERVICE_META_DATA

AccessibilityService组件发布有关本身的信息的名称。

INT SHOW_MODE_AUTO

INT SHOW_MODE_HIDDEN

继承常量

  从类android.app.Service

  从类android.content.Context

  从界面android.content.ComponentCallbacks2

公共建设者

AccessibilityService()

公共方法

final void disableSelf()

禁用服务。

final boolean dispatchGestureGestureDescription gestureAccessibilityService.GestureResultCallback callbackHandler handler

将手势发送到触摸屏。

AccessibilityNodeInfo findFocusint focus

找到具有指定焦点类型的视图。

AccessibilityButtonController getAccessibilityButtonController()

返回系统导航区域中可访问性按钮的控制器。

最终FingerprintGestureController getFingerprintGestureController()

获取控制器的指纹手势。

AccessibilityService.MagnificationController getMagnificationController()

返回放大控制器,可用于查询和修改显示放大的状态。

AccessibilityNodeInfo getRootInActiveWindow()

如果该服务可以检索窗口内容,则获取当前活动窗口中的根节点。

AccessibilityServiceInfo getServiceInfo()

获取描述此AccessibilityServiceAccessibilityServiceInfo

最终AccessibilityService.SoftKeyboardController getSoftKeyboardController()

返回软键盘控制器,可用于查询和修改软键盘显示模式。

Object getSystemServiceString name

通过名称将句柄返回到系统级服务。

列表<AccessibilityWindowInfo> getWindows()

获取屏幕上的窗口。

abstract void onAccessibilityEventAccessibilityEvent event

AccessibilityEvents的回调。

最终IBinder onBind(意图意图)

实现返回内部可访问性服务接口的实现。

abstract void onInterrupt()

回拨用于中断可访问性反馈。

final boolean performGlobalActionint action

执行全局动作。

final void setServiceInfoAccessibilityServiceInfo info

设置描述此服务的AccessibilityServiceInfo

受保护的方法

boolean onGestureint gestureId

当用户在触摸屏上执行特定手势时由系统调用。

boolean onKeyEventKeyEvent event

回调允许辅助功能服务在将关键事件传递到系统的其余部分之前观察它们。

无效onServiceConnected()

该方法是AccessibilityService生命周期的一部分,并在系统成功绑定到该服务之后进行调用。

继承方法

  从类android.app.Service

  从类android.content.ContextWrapper

  从类android.content.Context

  从类java.lang.Object

  从界面android.content.ComponentCallbacks2

  从界面android.content.ComponentCallbacks

常量

GESTURE_SWIPE_DOWN

 加入API级别16

int GESTURE_SWIPE_DOWN

用户已经在触摸屏上执行了向下滑动手势。

常数值:20x00000002

 

GESTURE_SWIPE_DOWN_AND_LEFT

 加入API级别16

int GESTURE_SWIPE_DOWN_AND_LEFT

用户已经在触摸屏上执行了向下和向左手势。

常数值:150x0000000f


GESTURE_SWIPE_DOWN_AND_RIGHT

加入API级别16

int GESTURE_SWIPE_DOWN_AND_RIGHT

用户在触摸屏上执行了向下和向右的手势。

常数值:160x00000010

 

GESTURE_SWIPE_DOWN_AND_UP

加入API级别16

int GESTURE_SWIPE_DOWN_AND_UP

用户已经在触摸屏上执行了向下和向上的向下手势。

常数值:80x00000008


GESTURE_SWIPE_LEFT

加入API级别16

int GESTURE_SWIPE_LEFT

用户已经在触摸屏上执行了滑动左手势。

常数值:30x00000003

 

GESTURE_SWIPE_LEFT_AND_DOWN

加入API级别16

int GESTURE_SWIPE_LEFT_AND_DOWN

用户已经在触摸屏上执行了左和右手势。

常数值:100x0000000a

 

GESTURE_SWIPE_LEFT_AND_RIGHT

加入API级别16

int GESTURE_SWIPE_LEFT_AND_RIGHT

用户已经在触摸屏上执行了滑动左和右手势。

常数值:50x00000005

 

GESTURE_SWIPE_LEFT_AND_UP

加入API级别16

int GESTURE_SWIPE_LEFT_AND_UP

用户已经在触摸屏上执行了左和右手势。

常数值:90x00000009

 

GESTURE_SWIPE_RIGHT

加入API级别16

int GESTURE_SWIPE_RIGHT

用户已经在触摸屏上执行了滑动右手势。

常数值:40x00000004

 

GESTURE_SWIPE_RIGHT_AND_DOWN

加入API级别16

int GESTURE_SWIPE_RIGHT_AND_DOWN

用户已经在触摸屏上执行了向下和向下的手势。

常数值:120x0000000c

 

GESTURE_SWIPE_RIGHT_AND_LEFT

加入API级别16

int GESTURE_SWIPE_RIGHT_AND_LEFT

用户已经在触摸屏上执行了向左和向左滑动的手势。

常数值:60x00000006

 

GESTURE_SWIPE_RIGHT_AND_UP

加入API级别16

int GESTURE_SWIPE_RIGHT_AND_UP

用户已经在触摸屏上执行了向上和向上的手势。

常数值:110x0000000b

 

GESTURE_SWIPE_UP

加入API级别16

int GESTURE_SWIPE_UP

用户已经在触摸屏上执行了向上滑动手势。

常数值:10x00000001

 

GESTURE_SWIPE_UP_AND_DOWN

加入API级别16

int GESTURE_SWIPE_UP_AND_DOWN

用户已经在触摸屏上执行了向上和向下的滑动手势。

常数值:70x00000007

 

GESTURE_SWIPE_UP_AND_LEFT

加入API级别16

int GESTURE_SWIPE_UP_AND_LEFT

用户已经在触摸屏上执行了向上和向左的手势。

常数值:130x0000000d

 

GESTURE_SWIPE_UP_AND_RIGHT

加入API级别16

int GESTURE_SWIPE_UP_AND_RIGHT

用户已经在触摸屏上执行了向上和向右的手势。

常数值:140x0000000e

 

GLOBAL_ACTION_BACK

加入API级别16

int GLOBAL_ACTION_BACK

行动回去

常数值:10x00000001

 

GLOBAL_ACTION_HOME

加入API级别16

int GLOBAL_ACTION_HOME

行动回家

常数值:20x00000002

 

GLOBAL_ACTION_NOTIFICATIONS

加入API级别16

int GLOBAL_ACTION_NOTIFICATIONS

打开通知的动作。

常数值:40x00000004

 

GLOBAL_ACTION_POWER_DIALOG

加入API级别21

int GLOBAL_ACTION_POWER_DIALOG

动作打开电源长按对话框。

常数值:60x00000006


GLOBAL_ACTION_QUICK_SETTINGS

加入API级别17

int GLOBAL_ACTION_QUICK_SETTINGS

打开快速设置的动作。

常数值:50x00000005

 

GLOBAL_ACTION_RECENTS

加入API级别16

int GLOBAL_ACTION_RECENTS

切换显示最近应用的概述的操作。在不显示最近应用的平台上将失败。

常数值:30x00000003

 

GLOBAL_ACTION_TOGGLE_SPLIT_SCREEN

添加在API 24

int GLOBAL_ACTION_TOGGLE_SPLIT_SCREEN

切换对接当前应用程序窗口的操作

常数值:70x00000007

 

SERVICE_INTERFACE

加入API 4

字符串SERVICE_INTERFACE

必须声明为服务处理的意图。

常数值:android.accessibilityservice.AccessibilityService

 

SERVICE_META_DATA

加入API 14

字符串SERVICE_META_DATA

AccessibilityService组件发布有关本身的信息的名称。此元数据必须引用包含<accessibility-service>标签的XML资源。这是一个配置辅助服务的示例XML文件:

 <accessibility-service     android:accessibilityEventTypes="typeViewClicked|typeViewFocused"     android:packageNames="foo.bar, foo.baz"     android:accessibilityFeedbackType="feedbackSpoken"     android:notificationTimeout="100"     android:accessibilityFlags="flagDefault"     android:settingsActivity="foo.bar.TestBackActivity"     android:canRetrieveWindowContent="true"     android:canRequestTouchExplorationMode="true"     . . . />

常数值:android.accessibilityservice

 

SHOW_MODE_AUTO

添加在API 24

int SHOW_MODE_AUTO

常数值:00x00000000

 

SHOW_MODE_HIDDEN

添加在API 24

int SHOW_MODE_HIDDEN

常数值:10x00000001

 

公共建设者

AccessibilityService

加入API 4

AccessibilityService()


公共方法

disableSelf

添加在API 24

void disableSelf()

禁用服务。调用此方法后,该服务将被禁用,设置将显示它已关闭。

 

dispatchGesture

添加在API 24

boolean dispatchGestureGestureDescription gesture

                AccessibilityService.GestureResultCallback回调,

                处理者处理程序)

将手势发送到触摸屏。目前正在进行的任何手势(无论是从用户,本服务还是其他服务)将被取消。

 手势将像用户在屏幕上直接执行一样被调度,因此事件可能会受到诸如放大和触摸探索之类的功能的影响。

注意:为了调度手势,您的服务必须通过在其元数据中设置AccessibilityService_canPerformGestures属性来声明该功能。有关更多信息,请参阅SERVICE_META_DATA

参数

手势GestureDescription:派遣的手势

该值不能为空。

回调AccessibilityService.GestureResultCallback:当手势的状态已知时要调用的对象。如果为空,则不报告状态。

处理程序处理程序:调用回调对象的处理程序。如果为null,则该对象在服务的主线程上被调用。

返回

boolean如果手势被分派,则为true,否则为false


findFocus

加入API级别21

AccessibilityNodeInfo findFocusint focus

找到具有指定焦点类型的视图。搜索在所有窗口中执行。

注意:为了访问Windows,您的服务必须通过在其元数据中设置AccessibilityService_canRetrieveWindowContent属性来声明检索窗口内容的功能。有关详细信息,请参阅SERVICE_META_DATA。此外,服务必须选择通过设置FLAG_RETRIEVE_INTERACTIVE_WINDOWS标志来检索交互式窗口。否则,搜索将仅在活动窗口中执行。

参数

焦点int:重点查找。 FOCUS_INPUTFOCUS_ACCESSIBILITY之一。

返回

AccessibilityNodeInfo聚焦视图的节点信息或null

也可以看看:

FOCUS_INPUT

FOCUS_ACCESSIBILITY


getAccessibilityButtonController

加入API级别26

AccessibilityButtonController getAccessibilityButtonController()

返回系统导航区域中可访问性按钮的控制器。当设置FLAG_REQUEST_ACCESSIBILITY_BUTTON时,此实例可用于查询辅助功能按钮的状态并注册侦听器以进行交互,并调整可访问性按钮的状态更改。

注意:并非所有设备都能够在导航区域中显示辅助功能按钮,因此,此类的使用应被视为支持的设备实现上的可选功能或快捷方式。

返回

AccessibilityButtonController这个AccessibilityService的辅助功能按钮控制器

该值永远不会为空。


getFingerprintGestureController

加入API级别26

FingerprintGestureController getFingerprintGestureController()

获取控制器的指纹手势。此功能需要ERROR/ AccessibilityServiceInfoCAPABILITY_CAN_CAPTURE_FINGERPRINT_GESTURES)。注意:在调用此方法之前,必须连接该服务。

需要USE_FINGERPRINT权限。

返回

FingerprintGestureController用于指纹手势的控制器,如果手势不可用,则为空。


getMagnificationController

添加在API 24

AccessibilityService.MagnificationController getMagnificationController()

返回放大控制器,可用于查询和修改显示放大的状态。

注意:为了控制放大,您的服务必须通过在其元数据中设置AccessibilityService_canControlMagnification属性来声明该功能。有关更多信息,请参阅SERVICE_META_DATA

返回

AccessibilityService.MagnificationController放大控制器

该值永远不会为空。


getRootInActiveWindow

加入API级别16

AccessibilityNodeInfo getRootInActiveWindow()

如果该服务可以检索窗口内容,则获取当前活动窗口中的根节点。如果用户没有触摸任何窗口,则活动窗口是用户正在触摸的窗口或具有输入焦点的窗口。

当前活动的窗口被定义为最近触发的以下事件之一的窗口:TYPE_WINDOW_STATE_CHANGEDTYPE_VIEW_HOVER_ENTERTYPE_VIEW_HOVER_EXIT。换句话说,显示的最后一个窗口也有输入焦点。

注意:为了访问根节点,您的服务必须通过在其元数据中设置AccessibilityService_canRetrieveWindowContent属性来声明检索窗口内容的功能。有关详细信息,请参阅SERVICE_META_DATA

返回

AccessibilityNodeInfo此服务可以检索窗口内容的根节点。


getServiceInfo

加入API级别16

AccessibilityServiceInfo getServiceInfo()

获取描述此AccessibilityServiceAccessibilityServiceInfo。如果想在运行时更改一些可动态配置的属性,这个方法很有用。

返回

AccessibilityServiceInfo辅助功能信息。

也可以看看:

AccessibilityServiceInfo


getSoftKeyboardController

添加在API 24

Accessibility.SoftKeyboardController getSoftKeyboardController()

返回软键盘控制器,可用于查询和修改软键盘显示模式。

返回

Accessibility.SoftKeyboardController软键盘控制器

该值永远不会为空。


getSystemService

加入API 4

Object getSystemServiceString name

通过名称将句柄返回到系统级服务。返回对象的类根据请求的名称而异。目前可用的名称有:

WINDOW_SERVICE(“window”)

您可以在其中放置自定义窗口的顶级窗口管理器。返回的对象是一个WindowManager

LAYOUT_INFLATER_SERVICE(“layout_inflater”)

一个LayoutInflater用于在这种情况下膨胀布局资源。

ACTIVITY_SERVICE(“活动”)

用于与系统的全局活动状态进行交互的ActivityManager

POWER_SERVICE(“power”)

用于控制电源管理的PowerManager

ALARM_SERVICE(“alarm”)

用于在您选择时接收意图的AlarmManager

NOTIFICATION_SERVICE(“通知”)

一个NotificationManager,用于通知用户背景事件。

KEYGUARD_SERVICE(“keyguard”)

用于控制键盘保护的KeyguardManager

LOCATION_SERVICE(“location”)

用于控制位置(例如,GPS)更新的LocationManager

SEARCH_SERVICE(“search”)

用于处理搜索的SearchManager

VIBRATOR_SERVICE(“振动器”)

振动器用于与振动器硬件相互作用。

CONNECTIVITY_SERVICE(“connection”)

一个用于处理网络连接管理的ConnectivityManager

WIFI_SERVICE(“wifi”)

用于管理Wi-Fi连接的WifiManager。在NYC之前的版本中,它应该只能从应用程序上下文获得,而不能从任何其他派生上下文获取,以避免调用过程中的内存泄漏。

WIFI_AWARE_SERVICE(“wifiaware”)

用于管理Wi-Fi感知发现和连接的WifiAwareManager

WIFI_P2P_SERVICE(“wifip2p”)

用于管理Wi-Fi直接连接的WifiP2pManager

INPUT_METHOD_SERVICE(“input_method”)

用于管理输入法的InputMethodManager

UI_MODE_SERVICE(“uimode”)

用于控制UI模式的UiModeManager

DOWNLOAD_SERVICE(“下载”)

一个用于请求HTTP下载的DownloadManager

BATTERY_SERVICE(“batterymanager”)

用于管理电池状态的BatteryManager

JOB_SCHEDULER_SERVICE(“taskmanager”)

用于管理计划任务的JobScheduler

NETWORK_STATS_SERVICE(“netstats”)

NetworkStatsManager用于查询网络使用统计信息。

HARDWARE_PROPERTIES_SERVICE(“hardware_properties”)

用于访问硬件属性的HardwarePropertiesManager

注意:通过此API获取的系统服务可能与从其获取的上下文密切相关。一般来说,不要在各种不同的上下文(活动,应用程序,服务,提供商等)之间共享服务对象

 参数

name String:所需服务的名称。

该值不能为空。

返回

对象该服务,如果该名称不存在则为null


getWindows

加入API级别21

列表<AccessibilityWindowInfo> getWindows()

获取屏幕上的窗口。该方法只返回有目标用户可以与之相互影响的窗口,而不是所有窗口。例如,如果显示了一个模态对话框,并且用户无法触摸它后面的任何东西,则只会显示模态窗口(假设它是顶部的)。为了方便起见,返回的窗口按照降序顺序排列,这是首先报告Z序中较高的窗口。由于用户总是可以通过键入与输入焦点的窗口进行交互,所以聚焦的窗口总是返回(即使被模态窗口覆盖)。

注意:为了访问Windows,您的服务必须通过在其元数据中设置AccessibilityService_canRetrieveWindowContent属性来声明检索窗口内容的功能。有关详细信息,请参阅SERVICE_META_DATA。此外,服务必须选择通过设置FLAG_RETRIEVE_INTERACTIVE_WINDOWS标志来检索交互式窗口。

返回

列表<AccessibilityWindowInfo>如果有Windows和服务的窗口可以检索它们,否则为空列表。


onAccessibilityEvent

加入API 4

void onAccessibilityEventAccessibilityEvent event

AccessibilityEvents的回调。

参数

事件AccessibilityEvent:新事件。此事件由调用者拥有,此方法返回后无法使用。希望在此方法返回后使用事件的服务应该复制一份。


onBind

加入API 4

IBinder onBind(意图意图)

实现返回内部可访问性服务接口的实现。

参数

意图意图:根据Context.bindService给出的用于绑定到此服务的意图。请注意,此刻,Intent中包含的任何附加功能将不会在此处显示。

返回

IBinder返回一个IBinder,通过该IBinder客户端可以访问该服务。


onInterrupt

加入API 4

void onInterrupt()

回拨用于中断可访问性反馈。

 

performGlobalAction

加入API级别16

boolean performGlobalActionint action

执行全局动作。无论该应用程序中的当前应用程序或用户位置如何,都可以随时执行此类操作。例如回去,回家,开门等

参数

action int:执行的动作。

返回

boolean是否成功执行了动作。

也可以看看:

GLOBAL_ACTION_BACK

GLOBAL_ACTION_HOME

GLOBAL_ACTION_NOTIFICATIONS

GLOBAL_ACTION_RECENTS


setServiceInfo

加入API 4

void setServiceInfoAccessibilityServiceInfo info

设置描述此服务的AccessibilityServiceInfo

注意:您可以随时调用此方法,但是在系统绑定到此服务之后以及之后调用此方法时,信息将被拾取。

参数

info AccessibilityServiceInfo:信息。


受保护的方法

onGesture

加入API级别16

boolean onGestureint gestureId

当用户在触摸屏上执行特定手势时由系统调用。注意:要接收手势,无障碍服务必须通过设置FLAG_REQUEST_TOUCH_EXPLORATION_MODE标志来请求设备处于触摸探测模式。

参数

gestureId int:执行手势的唯一ID

返回

布尔值是否处理了手势。

也可以看看:

GESTURE_SWIPE_UP

GESTURE_SWIPE_UP_AND_LEFT

GESTURE_SWIPE_UP_AND_DOWN

GESTURE_SWIPE_UP_AND_RIGHT

GESTURE_SWIPE_DOWN

GESTURE_SWIPE_DOWN_AND_LEFT

GESTURE_SWIPE_DOWN_AND_UP

GESTURE_SWIPE_DOWN_AND_RIGHT

GESTURE_SWIPE_LEFT

GESTURE_SWIPE_LEFT_AND_UP

GESTURE_SWIPE_LEFT_AND_RIGHT

GESTURE_SWIPE_LEFT_AND_DOWN

GESTURE_SWIPE_RIGHT

GESTURE_SWIPE_RIGHT_AND_UP

GESTURE_SWIPE_RIGHT_AND_LEFT

GESTURE_SWIPE_RIGHT_AND_DOWN


onKeyEvent

加入API级别18

boolean onKeyEventKeyEvent event

回调允许辅助功能服务在将关键事件传递到系统的其余部分之前观察它们。这意味着事件首先在这些事件传递到设备策略,输入法或应用程序之前传递。

注意:重要事项是以传递给系统其余部分的事件流格式正确的方式进行处理。例如,处理down事件而不是up事件,反之亦然将产生不一致的事件流。

注意:此方法中提供的关键事件是副本和修改它们将不会影响将传递给系统的事件。此方法旨在执行纯过滤功能。

参数

事件KeyEvent:要处理的事件。此事件由调用者拥有,此方法返回后无法使用。希望在此方法返回后使用事件的服务应该复制一份。

返回

boolean如果为true,那么事件将被消耗,而不会传递给应用程序,否则将按照惯例进行传递。


onServiceConnected

加入API 4

void onServiceConnected()

该方法是AccessibilityService生命周期的一部分,并在系统成功绑定到该服务之后进行调用。 如果方便使用此方法设置AccessibilityServiceInfo

也可以看看:

AccessibilityServiceInfo

setServiceInfoAccessibilityServiceInfo