java.lang.Object | ||||
↳ | android.content.Context | |||
↳ | android.content.ContextWrapper | |||
↳ | android.app.Service | |||
↳ | android.accessibilityservice.AccessibilityService |
An accessibility service runs in the background and receives callbacks by the system
when AccessibilityEvent
s are fired. Such events denote some state transition
in the user interface, for example, the focus has changed, a button has been clicked,
etc.
An accessibility service extends this class and implements its abstract methods. Such
a service is declared as any other service in an AndroidManifest.xml but it must also
specify that it handles the "android.accessibilityservice.AccessibilityService"
Intent
. Following is an example of such a declaration:
<service android:name=".MyAccessibilityService">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
</service>
The lifecycle of an accessibility service is managed exclusively by the system. Starting
or stopping an accessibility service is triggered by an explicit user action through
enabling or disabling it in the device settings. After the system binds to a service it
calls onServiceConnected()
. This method can be
overriden by clients that want to perform post binding setup. An accessibility service
is configured though setting an AccessibilityServiceInfo
by calling
setServiceInfo(AccessibilityServiceInfo)
. You can call this
method any time to change the service configuration but it is good practice to do that
in the overriden onServiceConnected()
.
An accessibility service can be registered for events in specific packages to provide a specific type of feedback and is notified with a certain timeout after the last event of interest has been fired.
Notification strategy
For each feedback type only one accessibility service is notified. Services are notified in the order of registration. Hence, if two services are registered for the same feedback type in the same package the first one wins. It is possible however, to register a service as the default one for a given feedback type. In such a case this service is invoked if no other service was interested in the event. In other words, default services do not compete with other services and are notified last regardless of the registration order. This enables "generic" accessibility services that work reasonably well with most applications to coexist with "polished" ones that are targeted for specific applications.
Event types
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
Feedback types
FEEDBACK_AUDIBLE
FEEDBACK_HAPTIC
FEEDBACK_AUDIBLE
FEEDBACK_VISUAL
FEEDBACK_GENERIC
AccessibilityEvent
AccessibilityServiceInfo
Note: The event notification timeout is useful to avoid propagating events to the client
too frequently since this is accomplished via an expensive interprocess call.
One can think of the timeout as a criteria to determine when event generation has
settled down.
Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
String | SERVICE_INTERFACE | The Intent that must be declared as handled by the service. |
[Expand]
Inherited Constants | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
From class
android.app.Service
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
From class
android.content.Context
|
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Callback for
AccessibilityEvent s. | |||||||||||
Implement to return the implementation of the internal accessibility
service interface.
| |||||||||||
Callback for interrupting the accessibility feedback.
| |||||||||||
Sets the
AccessibilityServiceInfo that describes this service. |
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
This method is a part of the
AccessibilityService lifecycle and is
called after the system has successfully bound to the service. |
[Expand]
Inherited Methods | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
From class android.app.Service
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
From class android.content.ContextWrapper
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
From class android.content.Context
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
From class java.lang.Object
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
From interface android.content.ComponentCallbacks
|
The Intent
that must be declared as handled by the service.
Callback for AccessibilityEvent
s.
event | An event. |
---|
Implement to return the implementation of the internal accessibility service interface. Subclasses should not override.
intent | The Intent that was used to bind to this service,
as given to Context.bindService . Note that any extras that were included with
the Intent at that point will not be seen here. |
---|
Callback for interrupting the accessibility feedback.
Sets the AccessibilityServiceInfo
that describes this service.
Note: You can call this method any time but the info will be picked up after the system has bound to this service and when this method is called thereafter.
info | The info. |
---|
This method is a part of the AccessibilityService
lifecycle and is
called after the system has successfully bound to the service. If is
convenient to use this method for setting the AccessibilityServiceInfo
.