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