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.view.accessibility.AccessibilityEvent;
25 import android.view.accessibility.AccessibilityNodeInfo;
26 import android.view.accessibility.IAccessibilityInteractionConnection;
27 import android.view.accessibility.IAccessibilityManagerClient;
28 import android.view.accessibility.AccessibilityWindowAttributes;
29 import android.view.accessibility.IWindowMagnificationConnection;
30 import android.view.InputEvent;
31 import android.view.IWindow;
32 import android.view.MagnificationSpec;
33 
34 /**
35  * Interface implemented by the AccessibilityManagerService called by
36  * the AccessibilityManagers.
37  *
38  * @hide
39  */
40 interface IAccessibilityManager {
41 
interrupt(int userId)42     oneway void interrupt(int userId);
43 
sendAccessibilityEvent(in AccessibilityEvent uiEvent, int userId)44     oneway void sendAccessibilityEvent(in AccessibilityEvent uiEvent, int userId);
45 
addClient(IAccessibilityManagerClient client, int userId)46     long addClient(IAccessibilityManagerClient client, int userId);
47 
removeClient(IAccessibilityManagerClient client, int userId)48     boolean removeClient(IAccessibilityManagerClient client, int userId);
49 
getInstalledAccessibilityServiceList(int userId)50     List<AccessibilityServiceInfo> getInstalledAccessibilityServiceList(int userId);
51 
52     @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
getEnabledAccessibilityServiceList(int feedbackType, int userId)53     List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(int feedbackType, int userId);
54 
addAccessibilityInteractionConnection(IWindow windowToken, IBinder leashToken, in IAccessibilityInteractionConnection connection, String packageName, int userId)55     int addAccessibilityInteractionConnection(IWindow windowToken, IBinder leashToken,
56             in IAccessibilityInteractionConnection connection,
57             String packageName, int userId);
58 
removeAccessibilityInteractionConnection(IWindow windowToken)59     void removeAccessibilityInteractionConnection(IWindow windowToken);
60 
setPictureInPictureActionReplacingConnection( in IAccessibilityInteractionConnection connection)61     void setPictureInPictureActionReplacingConnection(
62             in IAccessibilityInteractionConnection connection);
63 
registerUiTestAutomationService(IBinder owner, IAccessibilityServiceClient client, in AccessibilityServiceInfo info, int userId, int flags)64     void registerUiTestAutomationService(IBinder owner, IAccessibilityServiceClient client,
65         in AccessibilityServiceInfo info, int userId, int flags);
66 
unregisterUiTestAutomationService(IAccessibilityServiceClient client)67     void unregisterUiTestAutomationService(IAccessibilityServiceClient client);
68 
69     // Used by UiAutomation
getWindowToken(int windowId, int userId)70     IBinder getWindowToken(int windowId, int userId);
71 
notifyAccessibilityButtonClicked(int displayId, String targetName)72     void notifyAccessibilityButtonClicked(int displayId, String targetName);
73 
notifyAccessibilityButtonVisibilityChanged(boolean available)74     void notifyAccessibilityButtonVisibilityChanged(boolean available);
75 
76     // Requires Manifest.permission.MANAGE_ACCESSIBILITY
performAccessibilityShortcut(String targetName)77     void performAccessibilityShortcut(String targetName);
78 
79     // Requires Manifest.permission.MANAGE_ACCESSIBILITY
getAccessibilityShortcutTargets(int shortcutType)80     List<String> getAccessibilityShortcutTargets(int shortcutType);
81 
82     // System process only
sendFingerprintGesture(int gestureKeyCode)83     boolean sendFingerprintGesture(int gestureKeyCode);
84 
85     // System process only
getAccessibilityWindowId(IBinder windowToken)86     int getAccessibilityWindowId(IBinder windowToken);
87 
getRecommendedTimeoutMillis()88     long getRecommendedTimeoutMillis();
89 
registerSystemAction(in RemoteAction action, int actionId)90     oneway void registerSystemAction(in RemoteAction action, int actionId);
unregisterSystemAction(int actionId)91     oneway void unregisterSystemAction(int actionId);
setWindowMagnificationConnection(in IWindowMagnificationConnection connection)92     oneway void setWindowMagnificationConnection(in IWindowMagnificationConnection connection);
93 
associateEmbeddedHierarchy(IBinder host, IBinder embedded)94     void associateEmbeddedHierarchy(IBinder host, IBinder embedded);
95 
disassociateEmbeddedHierarchy(IBinder token)96     void disassociateEmbeddedHierarchy(IBinder token);
97 
getFocusStrokeWidth()98     int getFocusStrokeWidth();
99 
getFocusColor()100     int getFocusColor();
101 
isAudioDescriptionByDefaultEnabled()102     boolean isAudioDescriptionByDefaultEnabled();
103 
104     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.SET_SYSTEM_AUDIO_CAPTION)")
setSystemAudioCaptioningEnabled(boolean isEnabled, int userId)105     void setSystemAudioCaptioningEnabled(boolean isEnabled, int userId);
106 
isSystemAudioCaptioningUiEnabled(int userId)107     boolean isSystemAudioCaptioningUiEnabled(int userId);
108 
109     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.SET_SYSTEM_AUDIO_CAPTION)")
setSystemAudioCaptioningUiEnabled(boolean isEnabled, int userId)110     void setSystemAudioCaptioningUiEnabled(boolean isEnabled, int userId);
111 
setAccessibilityWindowAttributes(int displayId, int windowId, int userId, in AccessibilityWindowAttributes attributes)112     oneway void setAccessibilityWindowAttributes(int displayId, int windowId, int userId, in AccessibilityWindowAttributes attributes);
113 
114     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MANAGE_ACCESSIBILITY)")
registerProxyForDisplay(IAccessibilityServiceClient proxy, int displayId)115     boolean registerProxyForDisplay(IAccessibilityServiceClient proxy, int displayId);
116 
117     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MANAGE_ACCESSIBILITY)")
unregisterProxyForDisplay(int displayId)118     boolean unregisterProxyForDisplay(int displayId);
119 
120     // Used by UiAutomation for tests on the InputFilter
injectInputEventToInputFilter(in InputEvent event)121     void injectInputEventToInputFilter(in InputEvent event);
122 
startFlashNotificationSequence(String opPkg, int reason, IBinder token)123     boolean startFlashNotificationSequence(String opPkg, int reason, IBinder token);
stopFlashNotificationSequence(String opPkg)124     boolean stopFlashNotificationSequence(String opPkg);
startFlashNotificationEvent(String opPkg, int reason, String reasonPkg)125     boolean startFlashNotificationEvent(String opPkg, int reason, String reasonPkg);
126 
isAccessibilityTargetAllowed(String packageName, int uid, int userId)127     boolean isAccessibilityTargetAllowed(String packageName, int uid, int userId);
sendRestrictedDialogIntent(String packageName, int uid, int userId)128     boolean sendRestrictedDialogIntent(String packageName, int uid, int userId);
129 
130     parcelable WindowTransformationSpec {
131         float[] transformationMatrix;
132         MagnificationSpec magnificationSpec;
133     }
getWindowTransformationSpec(int windowId)134     WindowTransformationSpec getWindowTransformationSpec(int windowId);
135 }
136