• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2 ** Copyright 2009, The Android Open Source Project
3 **
4 ** Licensed under the Apache License, Version 2.0 (the "License");
5 ** you may not use this file except in compliance with the License.
6 ** You may obtain a copy of the License at
7 **
8 **     http://www.apache.org/licenses/LICENSE-2.0
9 **
10 ** Unless required by applicable law or agreed to in writing, software
11 ** distributed under the License is distributed on an "AS IS" BASIS,
12 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 ** See the License for the specific language governing permissions and
14 ** limitations under the License.
15 */
16 
17 package android.view.accessibility;
18 
19 import android.app.RemoteAction;
20 import android.accessibilityservice.AccessibilityServiceInfo;
21 import android.accessibilityservice.IAccessibilityServiceConnection;
22 import android.accessibilityservice.IAccessibilityServiceClient;
23 import android.content.ComponentName;
24 import android.content.pm.ParceledListSlice;
25 import android.os.Bundle;
26 import android.view.accessibility.AccessibilityEvent;
27 import android.view.accessibility.AccessibilityNodeInfo;
28 import android.view.accessibility.IAccessibilityInteractionConnection;
29 import android.view.accessibility.IAccessibilityManagerClient;
30 import android.view.accessibility.AccessibilityWindowAttributes;
31 import android.view.accessibility.IMagnificationConnection;
32 import android.view.accessibility.IUserInitializationCompleteCallback;
33 import android.view.InputEvent;
34 import android.view.IWindow;
35 import android.view.MagnificationSpec;
36 import android.view.SurfaceControl;
37 
38 /**
39  * Interface implemented by the AccessibilityManagerService called by
40  * the AccessibilityManagers.
41  *
42  * @hide
43  */
44 interface IAccessibilityManager {
45 
46     @RequiresNoPermission
interrupt(int userId)47     oneway void interrupt(int userId);
48 
49     @RequiresNoPermission
sendAccessibilityEvent(in AccessibilityEvent uiEvent, int userId)50     oneway void sendAccessibilityEvent(in AccessibilityEvent uiEvent, int userId);
51 
52     @RequiresNoPermission
addClient(IAccessibilityManagerClient client, int userId)53     long addClient(IAccessibilityManagerClient client, int userId);
54 
55     @RequiresNoPermission
removeClient(IAccessibilityManagerClient client, int userId)56     boolean removeClient(IAccessibilityManagerClient client, int userId);
57 
58     @RequiresNoPermission
getInstalledAccessibilityServiceList(int userId)59     ParceledListSlice<AccessibilityServiceInfo> getInstalledAccessibilityServiceList(int userId);
60 
61     @RequiresNoPermission
62     @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
getEnabledAccessibilityServiceList(int feedbackType, int userId)63     List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(int feedbackType, int userId);
64 
65     @RequiresNoPermission
addAccessibilityInteractionConnection(IWindow windowToken, IBinder leashToken, in IAccessibilityInteractionConnection connection, String packageName, int userId)66     int addAccessibilityInteractionConnection(IWindow windowToken, IBinder leashToken,
67             in IAccessibilityInteractionConnection connection,
68             String packageName, int userId);
69 
70     @RequiresNoPermission
removeAccessibilityInteractionConnection(IWindow windowToken)71     void removeAccessibilityInteractionConnection(IWindow windowToken);
72 
73     @EnforcePermission("MODIFY_ACCESSIBILITY_DATA")
setPictureInPictureActionReplacingConnection( in IAccessibilityInteractionConnection connection)74     void setPictureInPictureActionReplacingConnection(
75             in IAccessibilityInteractionConnection connection);
76 
77     @EnforcePermission("RETRIEVE_WINDOW_CONTENT")
registerUiTestAutomationService(IBinder owner, IAccessibilityServiceClient client, in AccessibilityServiceInfo info, int userId, int flags)78     void registerUiTestAutomationService(IBinder owner, IAccessibilityServiceClient client,
79         in AccessibilityServiceInfo info, int userId, int flags);
80 
81     @RequiresNoPermission
unregisterUiTestAutomationService(IAccessibilityServiceClient client)82     void unregisterUiTestAutomationService(IAccessibilityServiceClient client);
83 
84     // Used by UiAutomation
85     @EnforcePermission("RETRIEVE_WINDOW_CONTENT")
getWindowToken(int windowId, int userId)86     IBinder getWindowToken(int windowId, int userId);
87 
88     @EnforcePermission("STATUS_BAR_SERVICE")
notifyAccessibilityButtonClicked(int displayId, String targetName)89     void notifyAccessibilityButtonClicked(int displayId, String targetName);
90 
91     @EnforcePermission("STATUS_BAR_SERVICE")
notifyAccessibilityButtonLongClicked(int displayId)92     void notifyAccessibilityButtonLongClicked(int displayId);
93 
94     @EnforcePermission("STATUS_BAR_SERVICE")
notifyAccessibilityButtonVisibilityChanged(boolean available)95     void notifyAccessibilityButtonVisibilityChanged(boolean available);
96 
97     @EnforcePermission("MANAGE_ACCESSIBILITY")
performAccessibilityShortcut(int displayId, int shortcutType, String targetName)98     void performAccessibilityShortcut(int displayId, int shortcutType, String targetName);
99 
100     @EnforcePermission("MANAGE_ACCESSIBILITY")
getAccessibilityShortcutTargets(int shortcutType)101     List<String> getAccessibilityShortcutTargets(int shortcutType);
102 
103     // System process only
104     @RequiresNoPermission
sendFingerprintGesture(int gestureKeyCode)105     boolean sendFingerprintGesture(int gestureKeyCode);
106 
107     // System process only
108     @RequiresNoPermission
getAccessibilityWindowId(IBinder windowToken)109     int getAccessibilityWindowId(IBinder windowToken);
110 
111     @RequiresNoPermission
getRecommendedTimeoutMillis()112     long getRecommendedTimeoutMillis();
113 
114     @EnforcePermission("MANAGE_ACCESSIBILITY")
registerSystemAction(in RemoteAction action, int actionId)115     oneway void registerSystemAction(in RemoteAction action, int actionId);
116 
117     @EnforcePermission("MANAGE_ACCESSIBILITY")
unregisterSystemAction(int actionId)118     oneway void unregisterSystemAction(int actionId);
119 
120     @EnforcePermission("STATUS_BAR_SERVICE")
setMagnificationConnection(in IMagnificationConnection connection)121     oneway void setMagnificationConnection(in IMagnificationConnection connection);
122 
123     @RequiresNoPermission
associateEmbeddedHierarchy(IBinder host, IBinder embedded)124     void associateEmbeddedHierarchy(IBinder host, IBinder embedded);
125 
126     @RequiresNoPermission
disassociateEmbeddedHierarchy(IBinder token)127     void disassociateEmbeddedHierarchy(IBinder token);
128 
129     @RequiresNoPermission
getFocusStrokeWidth()130     int getFocusStrokeWidth();
131 
132     @RequiresNoPermission
getFocusColor()133     int getFocusColor();
134 
135     @RequiresNoPermission
isAudioDescriptionByDefaultEnabled()136     boolean isAudioDescriptionByDefaultEnabled();
137 
138     @EnforcePermission("SET_SYSTEM_AUDIO_CAPTION")
setSystemAudioCaptioningEnabled(boolean isEnabled, int userId)139     void setSystemAudioCaptioningEnabled(boolean isEnabled, int userId);
140 
141     @RequiresNoPermission
isSystemAudioCaptioningUiEnabled(int userId)142     boolean isSystemAudioCaptioningUiEnabled(int userId);
143 
144     @EnforcePermission("SET_SYSTEM_AUDIO_CAPTION")
setSystemAudioCaptioningUiEnabled(boolean isEnabled, int userId)145     void setSystemAudioCaptioningUiEnabled(boolean isEnabled, int userId);
146 
147     @RequiresNoPermission
setAccessibilityWindowAttributes(int displayId, int windowId, int userId, in AccessibilityWindowAttributes attributes)148     oneway void setAccessibilityWindowAttributes(int displayId, int windowId, int userId, in AccessibilityWindowAttributes attributes);
149 
150     // Requires CREATE_VIRTUAL_DEVICE permission. Also requires either a11y permission or role.
151     @EnforcePermission("CREATE_VIRTUAL_DEVICE")
registerProxyForDisplay(IAccessibilityServiceClient proxy, int displayId)152     boolean registerProxyForDisplay(IAccessibilityServiceClient proxy, int displayId);
153 
154     // Requires CREATE_VIRTUAL_DEVICE permission. Also requires either a11y permission or role.
155     @EnforcePermission("CREATE_VIRTUAL_DEVICE")
unregisterProxyForDisplay(int displayId)156     boolean unregisterProxyForDisplay(int displayId);
157 
158     // Used by UiAutomation for tests on the InputFilter
159     @EnforcePermission("INJECT_EVENTS")
injectInputEventToInputFilter(in InputEvent event)160     void injectInputEventToInputFilter(in InputEvent event);
161 
162     @EnforcePermission("MANAGE_ACCESSIBILITY")
startFlashNotificationSequence(String opPkg, int reason, IBinder token)163     boolean startFlashNotificationSequence(String opPkg, int reason, IBinder token);
164 
165     @EnforcePermission("MANAGE_ACCESSIBILITY")
stopFlashNotificationSequence(String opPkg)166     boolean stopFlashNotificationSequence(String opPkg);
167 
168     @EnforcePermission("MANAGE_ACCESSIBILITY")
startFlashNotificationEvent(String opPkg, int reason, String reasonPkg)169     boolean startFlashNotificationEvent(String opPkg, int reason, String reasonPkg);
170 
171     @RequiresNoPermission
isAccessibilityTargetAllowed(String packageName, int uid, int userId)172     boolean isAccessibilityTargetAllowed(String packageName, int uid, int userId);
173 
174     @RequiresNoPermission
sendRestrictedDialogIntent(String packageName, int uid, int userId)175     boolean sendRestrictedDialogIntent(String packageName, int uid, int userId);
176 
177     @EnforcePermission("MANAGE_ACCESSIBILITY")
isAccessibilityServiceWarningRequired(in AccessibilityServiceInfo info)178     boolean isAccessibilityServiceWarningRequired(in AccessibilityServiceInfo info);
179 
180     parcelable WindowTransformationSpec {
181         float[] transformationMatrix;
182         MagnificationSpec magnificationSpec;
183     }
184     @RequiresNoPermission
getWindowTransformationSpec(int windowId)185     WindowTransformationSpec getWindowTransformationSpec(int windowId);
186 
187     @EnforcePermission("INTERNAL_SYSTEM_WINDOW")
attachAccessibilityOverlayToDisplay(int displayId, in SurfaceControl surfaceControl)188     void attachAccessibilityOverlayToDisplay(int displayId, in SurfaceControl surfaceControl);
189 
190     @EnforcePermission(allOf={"STATUS_BAR_SERVICE","MANAGE_ACCESSIBILITY"})
notifyQuickSettingsTilesChanged(int userId, in List<ComponentName> tileComponentNames)191     oneway void notifyQuickSettingsTilesChanged(int userId, in List<ComponentName> tileComponentNames);
192 
193     @EnforcePermission("MANAGE_ACCESSIBILITY")
enableShortcutsForTargets(boolean enable, int shortcutTypes, in List<String> shortcutTargets, int userId)194     oneway void enableShortcutsForTargets(boolean enable, int shortcutTypes, in List<String> shortcutTargets, int userId);
195 
196     @EnforcePermission("MANAGE_ACCESSIBILITY")
getA11yFeatureToTileMap(int userId)197     Bundle getA11yFeatureToTileMap(int userId);
198 
199     @RequiresNoPermission
registerUserInitializationCompleteCallback(IUserInitializationCompleteCallback callback)200     void registerUserInitializationCompleteCallback(IUserInitializationCompleteCallback callback);
201 
202     @RequiresNoPermission
unregisterUserInitializationCompleteCallback(IUserInitializationCompleteCallback callback)203     void unregisterUserInitializationCompleteCallback(IUserInitializationCompleteCallback callback);
204 }
205