1 /* 2 * Copyright (C) 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.accessibilityservice; 18 19 import android.accessibilityservice.AccessibilityServiceInfo; 20 import android.accessibilityservice.IBrailleDisplayController; 21 import android.accessibilityservice.MagnificationConfig; 22 import android.content.pm.ParceledListSlice; 23 import android.graphics.Bitmap; 24 import android.graphics.Region; 25 import android.hardware.usb.UsbDevice; 26 import android.os.Bundle; 27 import android.os.RemoteCallback; 28 import android.view.MagnificationSpec; 29 import android.view.SurfaceControl; 30 import android.view.MotionEvent; 31 import android.view.SurfaceControl; 32 import android.view.accessibility.AccessibilityNodeInfo; 33 import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction; 34 import android.view.accessibility.IAccessibilityInteractionConnectionCallback; 35 import android.view.accessibility.AccessibilityWindowInfo; 36 import java.util.List; 37 import android.window.ScreenCapture; 38 39 /** 40 * Interface given to an AccessibilitySerivce to talk to the AccessibilityManagerService. 41 * 42 * @hide 43 */ 44 interface IAccessibilityServiceConnection { 45 46 @RequiresNoPermission setServiceInfo(in AccessibilityServiceInfo info)47 void setServiceInfo(in AccessibilityServiceInfo info); 48 49 @RequiresNoPermission setAttributionTag(in String attributionTag)50 void setAttributionTag(in String attributionTag); 51 52 @RequiresNoPermission findAccessibilityNodeInfoByAccessibilityId(int accessibilityWindowId, long accessibilityNodeId, int interactionId, IAccessibilityInteractionConnectionCallback callback, int flags, long threadId, in Bundle arguments)53 String[] findAccessibilityNodeInfoByAccessibilityId(int accessibilityWindowId, 54 long accessibilityNodeId, int interactionId, 55 IAccessibilityInteractionConnectionCallback callback, int flags, long threadId, 56 in Bundle arguments); 57 58 @RequiresNoPermission findAccessibilityNodeInfosByText(int accessibilityWindowId, long accessibilityNodeId, String text, int interactionId, IAccessibilityInteractionConnectionCallback callback, long threadId)59 String[] findAccessibilityNodeInfosByText(int accessibilityWindowId, long accessibilityNodeId, 60 String text, int interactionId, IAccessibilityInteractionConnectionCallback callback, 61 long threadId); 62 63 @RequiresNoPermission findAccessibilityNodeInfosByViewId(int accessibilityWindowId, long accessibilityNodeId, String viewId, int interactionId, IAccessibilityInteractionConnectionCallback callback, long threadId)64 String[] findAccessibilityNodeInfosByViewId(int accessibilityWindowId, 65 long accessibilityNodeId, String viewId, int interactionId, 66 IAccessibilityInteractionConnectionCallback callback, long threadId); 67 68 @RequiresNoPermission findFocus(int accessibilityWindowId, long accessibilityNodeId, int focusType, int interactionId, IAccessibilityInteractionConnectionCallback callback, long threadId)69 String[] findFocus(int accessibilityWindowId, long accessibilityNodeId, int focusType, 70 int interactionId, IAccessibilityInteractionConnectionCallback callback, long threadId); 71 72 @RequiresNoPermission focusSearch(int accessibilityWindowId, long accessibilityNodeId, int direction, int interactionId, IAccessibilityInteractionConnectionCallback callback, long threadId)73 String[] focusSearch(int accessibilityWindowId, long accessibilityNodeId, int direction, 74 int interactionId, IAccessibilityInteractionConnectionCallback callback, long threadId); 75 76 @RequiresNoPermission performAccessibilityAction(int accessibilityWindowId, long accessibilityNodeId, int action, in Bundle arguments, int interactionId, IAccessibilityInteractionConnectionCallback callback, long threadId)77 boolean performAccessibilityAction(int accessibilityWindowId, long accessibilityNodeId, 78 int action, in Bundle arguments, int interactionId, 79 IAccessibilityInteractionConnectionCallback callback, long threadId); 80 81 @RequiresNoPermission getWindow(int windowId)82 AccessibilityWindowInfo getWindow(int windowId); 83 84 @RequiresNoPermission getWindows()85 AccessibilityWindowInfo.WindowListSparseArray getWindows(); 86 87 @RequiresNoPermission getServiceInfo()88 AccessibilityServiceInfo getServiceInfo(); 89 90 @RequiresNoPermission performGlobalAction(int action)91 boolean performGlobalAction(int action); 92 93 @RequiresNoPermission getSystemActions()94 List<AccessibilityNodeInfo.AccessibilityAction> getSystemActions(); 95 96 @RequiresNoPermission disableSelf()97 void disableSelf(); 98 99 @RequiresNoPermission setOnKeyEventResult(boolean handled, int sequence)100 oneway void setOnKeyEventResult(boolean handled, int sequence); 101 102 @RequiresNoPermission getMagnificationConfig(int displayId)103 MagnificationConfig getMagnificationConfig(int displayId); 104 105 @RequiresNoPermission getMagnificationScale(int displayId)106 float getMagnificationScale(int displayId); 107 108 @RequiresNoPermission getMagnificationCenterX(int displayId)109 float getMagnificationCenterX(int displayId); 110 111 @RequiresNoPermission getMagnificationCenterY(int displayId)112 float getMagnificationCenterY(int displayId); 113 114 @RequiresNoPermission getMagnificationRegion(int displayId)115 Region getMagnificationRegion(int displayId); 116 117 @RequiresNoPermission getCurrentMagnificationRegion(int displayId)118 Region getCurrentMagnificationRegion(int displayId); 119 120 @RequiresNoPermission resetMagnification(int displayId, boolean animate)121 boolean resetMagnification(int displayId, boolean animate); 122 123 @RequiresNoPermission resetCurrentMagnification(int displayId, boolean animate)124 boolean resetCurrentMagnification(int displayId, boolean animate); 125 126 @RequiresNoPermission setMagnificationConfig(int displayId, in MagnificationConfig config, boolean animate)127 boolean setMagnificationConfig(int displayId, in MagnificationConfig config, boolean animate); 128 129 @RequiresNoPermission setMagnificationCallbackEnabled(int displayId, boolean enabled)130 void setMagnificationCallbackEnabled(int displayId, boolean enabled); 131 132 @RequiresNoPermission setSoftKeyboardShowMode(int showMode)133 boolean setSoftKeyboardShowMode(int showMode); 134 135 @RequiresNoPermission getSoftKeyboardShowMode()136 int getSoftKeyboardShowMode(); 137 138 @RequiresNoPermission setSoftKeyboardCallbackEnabled(boolean enabled)139 void setSoftKeyboardCallbackEnabled(boolean enabled); 140 141 @RequiresNoPermission switchToInputMethod(String imeId)142 boolean switchToInputMethod(String imeId); 143 144 @RequiresNoPermission setInputMethodEnabled(String imeId, boolean enabled)145 int setInputMethodEnabled(String imeId, boolean enabled); 146 147 @RequiresNoPermission isAccessibilityButtonAvailable()148 boolean isAccessibilityButtonAvailable(); 149 150 @RequiresNoPermission sendGesture(int sequence, in ParceledListSlice gestureSteps)151 void sendGesture(int sequence, in ParceledListSlice gestureSteps); 152 153 @RequiresNoPermission dispatchGesture(int sequence, in ParceledListSlice gestureSteps, int displayId)154 void dispatchGesture(int sequence, in ParceledListSlice gestureSteps, int displayId); 155 156 @RequiresNoPermission isFingerprintGestureDetectionAvailable()157 boolean isFingerprintGestureDetectionAvailable(); 158 159 @RequiresNoPermission getOverlayWindowToken(int displayid)160 IBinder getOverlayWindowToken(int displayid); 161 162 @RequiresNoPermission getWindowIdForLeashToken(IBinder token)163 int getWindowIdForLeashToken(IBinder token); 164 165 @RequiresNoPermission takeScreenshot(int displayId, in RemoteCallback callback)166 void takeScreenshot(int displayId, in RemoteCallback callback); 167 168 @RequiresNoPermission takeScreenshotOfWindow(int accessibilityWindowId, int interactionId, in ScreenCapture.ScreenCaptureListener listener, IAccessibilityInteractionConnectionCallback callback)169 void takeScreenshotOfWindow(int accessibilityWindowId, int interactionId, 170 in ScreenCapture.ScreenCaptureListener listener, 171 IAccessibilityInteractionConnectionCallback callback); 172 173 @RequiresNoPermission setGestureDetectionPassthroughRegion(int displayId, in Region region)174 void setGestureDetectionPassthroughRegion(int displayId, in Region region); 175 176 @RequiresNoPermission setTouchExplorationPassthroughRegion(int displayId, in Region region)177 void setTouchExplorationPassthroughRegion(int displayId, in Region region); 178 179 @RequiresNoPermission setFocusAppearance(int strokeWidth, int color)180 void setFocusAppearance(int strokeWidth, int color); 181 182 @RequiresNoPermission setCacheEnabled(boolean enabled)183 void setCacheEnabled(boolean enabled); 184 185 @RequiresNoPermission logTrace(long timestamp, String where, long loggingTypes, String callingParams, int processId, long threadId, int callingUid, in Bundle serializedCallingStackInBundle)186 oneway void logTrace(long timestamp, String where, long loggingTypes, String callingParams, 187 int processId, long threadId, int callingUid, in Bundle serializedCallingStackInBundle); 188 189 @RequiresNoPermission setServiceDetectsGesturesEnabled(int displayId, boolean mode)190 void setServiceDetectsGesturesEnabled(int displayId, boolean mode); 191 192 @RequiresNoPermission requestTouchExploration(int displayId)193 void requestTouchExploration(int displayId); 194 195 @RequiresNoPermission requestDragging(int displayId, int pointerId)196 void requestDragging(int displayId, int pointerId); 197 198 @RequiresNoPermission requestDelegating(int displayId)199 void requestDelegating(int displayId); 200 201 @RequiresNoPermission onDoubleTap(int displayId)202 void onDoubleTap(int displayId); 203 204 @RequiresNoPermission onDoubleTapAndHold(int displayId)205 void onDoubleTapAndHold(int displayId); 206 207 @RequiresNoPermission setAnimationScale(float scale)208 void setAnimationScale(float scale); 209 210 @RequiresNoPermission setInstalledAndEnabledServices(in List<AccessibilityServiceInfo> infos)211 void setInstalledAndEnabledServices(in List<AccessibilityServiceInfo> infos); 212 213 @RequiresNoPermission getInstalledAndEnabledServices()214 List<AccessibilityServiceInfo> getInstalledAndEnabledServices(); 215 216 @RequiresNoPermission attachAccessibilityOverlayToDisplay(int interactionId, int displayId, in SurfaceControl sc, IAccessibilityInteractionConnectionCallback callback)217 void attachAccessibilityOverlayToDisplay(int interactionId, int displayId, in SurfaceControl sc, IAccessibilityInteractionConnectionCallback callback); 218 219 @RequiresNoPermission attachAccessibilityOverlayToWindow(int interactionId, int accessibilityWindowId, in SurfaceControl sc, IAccessibilityInteractionConnectionCallback callback)220 void attachAccessibilityOverlayToWindow(int interactionId, int accessibilityWindowId, in SurfaceControl sc, IAccessibilityInteractionConnectionCallback callback); 221 222 @EnforcePermission("BLUETOOTH_CONNECT") connectBluetoothBrailleDisplay(in String bluetoothAddress, in IBrailleDisplayController controller)223 void connectBluetoothBrailleDisplay(in String bluetoothAddress, in IBrailleDisplayController controller); 224 225 226 @RequiresNoPermission connectUsbBrailleDisplay(in UsbDevice usbDevice, in IBrailleDisplayController controller)227 void connectUsbBrailleDisplay(in UsbDevice usbDevice, in IBrailleDisplayController controller); 228 229 @EnforcePermission("MANAGE_ACCESSIBILITY") setTestBrailleDisplayData(in List<Bundle> brailleDisplays)230 void setTestBrailleDisplayData(in List<Bundle> brailleDisplays); 231 }